zxing https://code.google.com/p/zxing/

Multi-format 1D/2D barcode image processing library with clients for Android, Java

zxing-client-android屏幕方向默认是landscape模式,修改如下源码,可改为portrait模式:

1、AndroidManifest.xml:

将android:screenOrientation="landscape"改为

android:screenOrientation="portrait"

2、DecodeHandler.java:

在buildLuminanceSource方法调用前增加

    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;    width = height;    height = tmp;    data = rotatedData;

3、CameraManager.java

将已有的计算rect.left/right/top/bottom的代码,替换为

      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;

4、CameraConfigurationManager.java

4.1、在setDesiredCameraParameters方法内新增代码

camera.setDisplayOrientation(90);

4.2、在initFromCameraParameters方法内注解掉代码 (最新代码可能不需要再改动此处 20130907)

    /*if (width < height) {      Log.i(TAG, "Display reports portrait orientation; assuming this is incorrect");      int temp = width;      width = height;      height = temp;    }*/

注,以上改动基于GoogleCode上最新zxing-client-android源码,并验证有效可行。

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android发送短信方法实例详解
  5. android 单选框
  6. Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
  7. Android中的dispatchTouchEvent()、onInterceptTouchEvent()和on
  8. How To Open An URL In Android’s Web Browser
  9. Android也有beacon了

随机推荐

  1. Firefox求助,这黑黑的东西是什么啊
  2. Ubuntu 20.04 LTS有望提供PHP 7.4
  3. 七夕蛤蟆背后的赚钱逻辑,没想到叫两声:孤寡
  4. 不低调的巨人,史玉柱
  5. 微软开源Scalar,提升操作巨型Git仓库的速
  6. 我用血和泪的教训,再次告诉你:不要接私活
  7. 谷歌发布首个Android 11开发者预览版本
  8. Google工程师:手机厂商们请不要再自行修改
  9. 阿里云网盘横空出世,勇者会恶龙,百度网盘危
  10. “这段代码,我在本地运行没问题啊?”