Ответ 1
Ни одно из решений не работает. В макетах нет ничего плохого. Я получил его для работы, работая на более высокой версии (API10 до API15). Weird!!
Я вызываю камеру, используя намерение и нажав на картинку.
В настоящее время я нахожусь в эмуляторе и хотел заставить камеру щелкнуть изображения в портретном режиме (нужно захватить видео с приложениями, поэтому изменение ориентации выглядело бы плохо), но на экране камеры появляется пейзаж и все дальнейшие действия, которые я вызываю в onActivityResult().
После щелчка на картинке макет активности выходит в ландшафтном режиме следующим образом:
пока все мои предыдущие действия отображались правильно в портретной ориентации. Я попробовал добавить
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden"
для показанной выше операции, но безрезультатно. Хотя, когда я ударяю домой и после возобновления, он отображается правильно в портрете.
Итак, как мне настроить портретный режим?
Ни одно из решений не работает. В макетах нет ничего плохого. Я получил его для работы, работая на более высокой версии (API10 до API15). Weird!!
Я думаю, что это известная проблема, см. Camera | SetDisplayOrientation
Вам нужно только установить идентификатор для каждого из ваших представлений. Вам не нужно принудительно снимать портретный режим. Выполняя это, запретите активность для воссоздания представлений и потери данных.
Напишите в вашем файле manifest.xml, где вы определили свою активность.
<activity android:name="your_activity name" android:screenOrientation="portrait" />
Это должно сработать. Я предлагаю вам проверить реальное устройство.
используйте этот код для своего класса захвата изображения, где начинается предварительный просмотр.
Эта работа shoudl:
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
i.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(i, CAMERA_CODE);