【问题标题】:Stopping surface view from rotating when displaying camera preview显示相机预览时停止旋转表面视图
【发布时间】:2011-05-07 10:10:57
【问题描述】:

我有一个显示相机预览的表面视图,在横向模式下看起来不错,但是当我将手机旋转为纵向时,表面视图会旋转,并且相机预览在其一侧,这看起来是错误的。

当我在AndroidManifest.xml 中将我的应用程序方向固定为横向时,表面视图的行为符合我的要求,因为它不会旋转并且相机预览效果很好。

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

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

谢谢,安德鲁

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 感谢您的快速回复。我尝试使用 setRotation 旋转相机,但预览仍然显示在不正确的旋转中。我尝试使用 params.set("rotation", 0),我同时尝试了两种方法,我尝试在进行更改之前停止预览并重新开始,但都没有奏效。
【解决方案2】:
public void surfaceDestroyed(SurfaceHolder holder){
    if(mCamera!=null){ 
        mCamera.stopPreview(); 
        mCamera.setPreviewCallback(null); 
        mCamera.release();       
        mCamera=null; 

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多