Как установить Android: screenOrientation = "портрет" для камеры - PullRequest
0 голосов
/ 23 ноября 2011

Я использую Samsung Galaxy Note для запуска приложения телефонной связи.Когда я делаю снимок, я вижу, что экран вращается непосредственно перед входом в камеру.Как я могу отключить это?

Я пытался принудительно установить портретную ориентацию как на основной поток, так и на активность камеры, но они, похоже, не работают:

<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>

Ответы [ 4 ]

2 голосов
/ 27 декабря 2011

Вам необходимо добавить разрешение в манифест:

<uses-feature android:name="android.hardware.screen.portrait" />

Doc android of balise -функция

Например, если вашему приложению требуется книжная ориентация, вы должны объявить <uses-feature android:name="android.hardware.screen.portrait"/>, чтобы только устройства, поддерживающие книжную ориентацию (всегда или по выбору пользователя), могли устанавливать ваше приложение. Если ваше приложение поддерживает обе ориентации, вам также не нужно объявлять.

1 голос
/ 23 ноября 2011

Как вы фотографируете?Если вы отправляете намерение запустить приложение камеры, вы теряете контроль над изменениями ориентации.Также обратите внимание, что перед переходом в спящий режим и блокировкой экранной заставки вынуждает ваше приложение к портретной ориентации с помощью ударов по настройкам или переопределяющих методов.Скорее всего, вы не можете и поведение на других устройствах может быть другим.

0 голосов
/ 10 октября 2013

Здесь есть две вещи, которые следует учитывать. Во-первых, это

android:screenOrientation="landscape"

не имеет никакого эффекта, если в коде Java есть что-то вроде этого:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Тогда есть еще один метод, который может вас беспокоить:

mCamera.setDisplayOrientation(90);

Это позволит повернуть предварительный просмотр камеры.

Надеюсь, это поможет!

0 голосов
/ 23 ноября 2011

Используйте android:configChanges="orientation|keyboardHidden" там, где вы устанавливаете экран как портрет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...