正确处理相机旋转(在TextureView中)

Mic*_*ł K 4 android android-camera

我尝试在我的应用程序中使用相机,我遇到了正确处理配置更改的问题.我知道在典型的Activity(onSaveInstanceState等)中处理配置更改的正确方法,但在这里并非如此.

将我的活动视为全屏相机预览,带有叠加快门按钮和用于裁剪图像的框架

我想要实现的目标(预览股票HTC Sense相机):http://youtu.be/uzfUJUNHY68

也就是说:打开时的相机预览TextureView不应该在旋转时重新创建,但是活动应该是方向感知的,以定位元素.

我很确定我不希望Activity在轮换时重新创建.所以我尝试了这种android:configChanges方法.问题是onSurfaceTextureSizeChanged()仍然被调用并且相机预览被旋转并且整个体验不平滑(预览滞后片刻并且被"重新创建"或者某种东西).

我尝试将我的Activity锁定到横向通过android:screenOrientation="landscape",但这种方式onConfigurationChanged()没有被调用,我不知道如何定位其他视图,如上面的视频.我想我可以听一些加速器事件,但我很确定有更好的方法.在那儿?

Mik*_*nin 5

Android相机来源.

锁定活动轮换.在方法onOrientationChangedMyOrientationEventListener,你可以旋转,意见等的变更位置,我认为这是一个最好的办法.