您的位置:首页 > 移动开发 > Android开发

Android ZXing改横屏识别为竖屏识别[转]

2013-12-25 13:41 423 查看
解决方法:

1.在DecodeHandler.java中,修改decode方法

  PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(data, width, height);



    byte[] rotatedData = new byte[data.length];

    for (int y = 0; y < height; y++) {

        for (int x = 0; x < width; x++)

            rotatedData[x * height + height - y - 1] = data[x + y * width];

    }

    int tmp = width; // Here we are swapping, that's the difference to #11

    width = height;

    height = tmp;

    

    PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(rotatedData, width, height);

2.在CameraManager.java中,注释代码:

            // rect.left = rect.left * cameraResolution.x / screenResolution.x;

            // rect.right = rect.right * cameraResolution.x / screenResolution.x;

            // rect.top = rect.top * cameraResolution.y / screenResolution.y;

            // rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y;

修改为

            rect.left = rect.left * cameraResolution.y / screenResolution.x;

            rect.right = rect.right * cameraResolution.y / screenResolution.x;

            rect.top = rect.top * cameraResolution.x / screenResolution.y;

            rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;

3.在CameraConfigurationManager.java中,在setDesiredCameraParameters方法中添加一句

  camera.setDisplayOrientation(90);

4.在AndroidManifest.xml中,把Activity的属性android:screenOrientation="landscape"

改为

  android:screenOrientation="portrait"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: