显示相机预览时停止旋转表面视图

时间:2011-05-07 10:10:58

标签: android surfaceview screen-orientation android-camera device-orientation

我有一个表面视图,显示相机预览,在横向模式下看起来不错,但是当我将手机旋转到纵向时,表面视图会旋转,相机预览位于其侧面看起来不对。

当我将应用程序方向修改为AndroidManifest.xml中的横向时,表面视图表现我想要的方式,因为它不会旋转并且相机预览效果很好。

问题是我在屏幕上有其他物体需要随着手机的方向旋转,现在不是因为我已经将方向设置为横向。

任何人都可以帮我一个方法,让手机旋转时将所有东西从表面视图中移开,或者当应用程序方向设置为横向时,如果无法获得手机的当前物理方向,以便我可以手动旋转其他对象。

谢谢,安德鲁

2 个答案:

答案 0 :(得分:0)

Camera.Parameters有一个setRotation()方法。当您从横向更改为纵向时,使用它来旋转相机,反之亦然。然后,您不必费心将布局与曲面视图分离。

答案 1 :(得分:0)

public void surfaceDestroyed(SurfaceHolder holder){
    if(mCamera!=null){ 
        mCamera.stopPreview(); 
        mCamera.setPreviewCallback(null); 
        mCamera.release();       
        mCamera=null; 

    }
}
相关问题