4

我尝试在我的应用程序中使用相机,但我在正确处理配置更改时遇到了问题。我知道在典型Activity(onSaveInstanceState 等)中处理配置更改的正确方法,但这里不是这种情况。

把我的 Activity 想象成一个全屏相机预览,带有一个覆盖快门按钮和一个用于裁剪图像的框架

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

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

我很确定我不希望Activity在旋转时重新创建。所以我尝试了这种android:configChanges方法。问题是它onSurfaceTextureSizeChanged()仍然被调用并且相机预览被旋转并且整个体验不流畅(预览滞后片刻并且被“重新创建”或其他东西)。

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

4

2 回答 2

5

安卓摄像头源码

锁定活动轮换。关于您可以旋转,更改视图位置等的方法onOrientationChangedMyOrientationEventListener我认为这是最好的方法。

于 2013-07-17T15:22:39.033 回答
-1

试试这个选项。

android:configChanges="keyboardHidden|orientation|screenSize"
于 2013-07-17T08:48:25.143 回答