解决方法:

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"

更多相关文章

  1. Android(安卓)NestedScrollView嵌套RecyclerView的问题
  2. 我的Android进阶之旅------>Android中android:visibility 属性VI
  3. Android多方案实现定时器功能
  4. android:scrollbars属性和弹出键盘的问题
  5. Android(安卓)动态代理以及利用动态代理实现 ServiceHook
  6. Android(安卓)Looper和Handler分析
  7. android:duplicateParentState属性解释
  8. android消息机制(handler运行机制)解析
  9. android studio 快捷键修改

随机推荐

  1. emulator找不到AVD解决方式
  2. Android studio怎么创建一个Java类文件
  3. 10个经典的Android开源项目
  4. 学习android的网站
  5. RelativeLayout的一些重要属性
  6. Android实习生 —— 网络请求及数据解析
  7. android canvas画图 切割画布(clipRect)
  8. Android加载本地网页
  9. android子线程不能更新UI
  10. Android ListView分两列显示(不用自定义Ad