Android相机处于横向状态,但在纵向模式下使用

时间:2013-02-11 14:26:59

标签: android camera

我将手机放在"肖像模式"但是cameraPreview处于模式环境中(即我看到旋转了90度的东西)。当我把手机转到#34;横向模式"预览很好,处于横向模式",图像不会旋转。 我无法访问Camera.setDisplayOrientation(int),因此我无法使用here解释的方法。

我试过了:

Camera.Parameters p = camera.getParameters();
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
    {   
        p.set("orientation", "portrait");
        p.set("rotation",90);
    }
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
    {                               
        p.set("orientation", "landscape");          
        p.set("rotation", 90);
    }

3 个答案:

答案 0 :(得分:0)

尝试使用以下方法设置相机的显示方向:

Camera camera;
...
camera.setDisplayOrientation(90);

将它放在surfaceCreated(SurfaceHolder holder)方法中。当我遇到类似问题时,这对我有用。

答案 1 :(得分:0)

好的,所以我解决了这个问题 在“surfaceCreated”方法中做

    Method rotateMethod;
    rotateMethod = android.hardware.Camera.class.getMethod("setDisplayOrientation", int.class);
    rotateMethod.invoke(camera, 90);

之后

camera = Camera.open();

(cf:Camera is wrong unless keyboard is open

答案 2 :(得分:0)

在工作区项目中的AndroidManifest.xml Activity中添加代码。

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>