如何为Camera设置android:screenOrientation =“portrait”

时间:2011-11-23 13:11:20

标签: android cordova android-manifest

我正在使用Samsung Galaxy Note来运行一个phonegap应用程序。 当我拍照时,我可以看到屏幕在进入相机之前旋转。 如何禁用此功能?

我试图在两个主线程和主线上强制纵向方向。相机活动, 但那些似乎不起作用:

<application android:icon="@drawable/icon" android:label="@string/app_name"
    android:debuggable="true">
    <activity android:name=".App" android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait"
              android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.phonegap.DroidGap" android:label="@string/app_name" 
              android:configChanges="orientation|keyboardHidden">
        <intent-filter>
        </intent-filter>
    </activity>
    <activity android:name="com.android.camera.Camera"
            android:screenOrientation="portrait">
    </activity>
</application>

3 个答案:

答案 0 :(得分:1)

你怎么拍照?如果您发送意图启动相机应用程序,您将失去对方向更改的控制权。另请注意,在进入睡眠状态之前,锁定屏幕启动器会强制您的应用程序进入纵向,并使用设置或覆盖方法进行对接。很可能你不能和其他设备上的行为可能不同。

答案 1 :(得分:0)

使用android:configChanges="orientation|keyboardHidden"将屏幕设置为肖像。

答案 2 :(得分:0)

这里有两件事情应该考虑在内。首先,这个

android:screenOrientation="landscape"
如果在java代码中有这样的东西,那么

就没有效果了:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

然后,还有另一种可能困扰你的方法:

mCamera.setDisplayOrientation(90);

这会旋转相机预览。

希望这有帮助!