gpt4 book ai didi

android + ZXing条码扫描库——自定义大小和方向

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:13 24 4
gpt4 key购买 nike

<分区>

我已经成功使用 ZXing 条码扫描库,但仅限于横向模式。

我也成功地将相机预览设置为纵向模式并正确显示(没有拉伸(stretch)),但现在条形码根本不起作用。这是我对“CameraConfigurationManager.java”上的“setDesiredCameraParameters”所做的更改,以便正确显示相机:

void setDesiredCameraParameters(Camera camera)
{
Camera.Parameters parameters = camera.getParameters();
Log.d(TAG, "Setting preview size: " + cameraResolution);
setFlash(parameters);
setZoom(parameters);
camera.setDisplayOrientation(90);
parameters.set("rotation", 90);
parameters.setPreviewSize(cameraResolution.y, cameraResolution.x);
camera.setParameters(parameters);
}

我已经尝试了其他地方提到的一些解决方案,但要么它们不起作用,要么它们起作用但无法正确显示相机预览。例子: How to use Zxing in portrait mode? http://code.google.com/p/zxing/issues/detail?id=178#c46 https://github.com/pplante/zxing-android/issues

完成后,我还需要自定义扫描矩形的位置和大小。我知道我需要更改“CameraManager.java”上的“setManualFramingRect”,但我不确定我是否做对了。这是代码:

public void setManualFramingRect(Rect rect)
{
if (initialized)
{
Point screenResolution = configManager.getScreenResolution();
if (rect.right >= screenResolution.x)
rect.right = screenResolution.x - 1;
if (rect.left < 0)
rect.left = 0;
if (rect.bottom >= screenResolution.y)
rect.bottom = screenResolution.y - 1;
if (rect.top < 0)
rect.top = 0;
framingRect = rect;
Log.d(TAG, "Calculated manual framing rect: " + framingRect);
framingRectInPreview = null;
}
else
_requestedFramingRect = new Rect(rect);
}

当然,我已经将“openDriver”更改为调用:

if (_requestedFramingRect != null)
setManualFramingRect(_requestedFramingRect);

请帮助我。


编辑:现在我发现它在某些设备上不起作用。它一开始就崩溃了,如果你调试,你会发现即使是预览也不能正常工作。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com