当前位置: 代码迷 >> Android >> 相机拍照有关问题,小弟我快疯了。
  详细解决方案

相机拍照有关问题,小弟我快疯了。

热度:85   发布时间:2016-04-28 06:53:45.0
相机拍照问题,我快疯了。。。
搞了两个星期没搞好。在eoe问了也没有明确解释。问题如下:

自定义一个Activity拍摄,当我竖屏拍的时候,照片方向总是不对,查看exif,里面的方向tag总是被设置为1,所谓的1就是横屏。所以只有横着拍才是正常的。
手机系统自带的拍照程序不会出现这个问题。
这个exif中的方向不是相机的驱自动设置的吗?我已经试过三个手机,都是一个样子。
所以现在我的做法是存盘时再修改一次这个exif。

我的程序已经通过设置Activity的screenOrientation="portrait"强制竖屏。这样用户无论怎样摆放手机的方向Activity都不会被重新初始化。所以相机的取景是连续的,不会因为竖着取景或横着取景而卡顿。但竖屏拍出来的相片需要旋转90度才是正确的。横屏正常。我需要实现的是像系统自带的拍照程序那样,无论横屏还是竖屏,得出的照片都是用户取景预览时看到的那样。现在的问题很明显是exif里orientation没有被正确设置。到底要不要设置setRotaion???setRoation可以改变exif里的orientation,从而得得正确的视图。我不考虑在PC上的浏览,只要手机里看到正确的方向即可,我已经看过n个demo的代码,都没有调用setRotaion,难道他们都得到了正确视图?请大家再指点一下!!
------解决方案--------------------
要设置的,只是没有在Activity里面调用,而是在专门写的OrientationManager里调用,然在Activity里调用OrientationManager。
我们做的就是还专门写了个OrientationManager类来管理,然后在Activity的onResume中调用
 mActivity.getGLRoot().setOrientationSource(mOrientationManager);
  相关解决方案