Zxing 扫码框不居中 用Android平板扫码失灵 在线等

从网上下的简化好的Zxing 正常运行没问题。
因为项目需要 要求把竖屏扫码改为横屏。
上网查了一下,把配置文件里改为android:screenOrientation="landscape"
在void setDesiredCameraParameters(Camera camera) {
Camera.Parameters parameters = camera.getParameters();
Log.d(TAG, "Setting preview size: " + cameraResolution);
parameters.setPreviewSize(cameraResolution.x, cameraResolution.y);
setFlash(parameters);
setZoom(parameters);
//setSharpness(parameters);旋转90度
//modify here
//camera.setDisplayOrientation(90);
camera.setParameters(parameters);
}
注释了旋转。
在Activity为全屏显示时正常。但是项目要求显示为dialog 把主题改为 android:theme="@android:style/Theme.Dialog" 。
问题出现了 扫码框不居中,而是在左下角。
并且用Android平板扫码失灵。
项目比较着急,之前没做过扫码。请各位大神指点,在线等

1个回答

楼主最好看一下源码,我当初下了zxing的库的时候完全傻眼了,一大堆和扫码不相关的代码,看了我2天才理清楚。我大概给你讲一下:
1、二维码的识别其实最主要的就是将自定义控件区域内的图片数据,转换为像素数组,然后对这个数组进行切割,具体类是PlanarYUVLuminanceSource.java,这个类可以好好看看,看完这个类你就差不多明白整个原理了。
2、其他的操作别看这个demo封来封去的,就是脱了裤子放屁,关键的代码就那么几句,你可以将zxing相关的类筛选出来分析。
3、至于你说的横屏后不居中,应该是那个自定义扫描框的写法有误,其实没必要用他的,我就是自己写的View来扫描,动态计算坐标
4、平板扫码失灵,这个可能有好几个可能。可能是摄像头的尺寸不支持demo设置的默认尺寸,也可能是平板的一些杂七杂八的问题,平板问题很多的,我当时分析的时候貌似就在摄像头的封装类看到了点BUG,不知道是不是产生你这个的原因,你可以细看下。
5、关键功能很简单的,被demo封装成一大堆,看着都烦,不过要有耐心,我当初也是看着蛋疼,逼着看完发现,这TM真是简单

立即提问