Я использую этот код:изображение сохраняется с неправильной ориентацией
где в Manifest
, Activity Orientation
установлен в Пейзаж.
Так, его, как позволяет пользователю сделать снимок только в ландшафтном режиме, и если изображение принимает, удерживая устройство в портретном режиме, изображение сохранено как это:
90-градусное повернутое изображение.
После поиска решения, я нашел это:
Android - Camera preview is sideways
где решение:
в surfaceChanged()
чек на
Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getRotation();
и изменить Отображение камерыОценка соответственно.
camera.setDisplayOrientation(90);
Но независимо от того, сколько раз я повернуть устройство, surfaceChanged()
никогда не вызывается.
Я даже попытался удалить orientation="Landscape"
в Manifest.xml, но затем сам просмотр показан сбоку (может быть потому, что по умолчанию android.view.SurfaceView
должен быть в ландшафтном режиме?).
Проверьте эту ссылку, это может быть полезно для вас. http://stackoverflow.com/questions/5157984/android-camera-surfaceview-orientation –
Ну, есть * причины, почему я больше не закрываю этот код в книге ... :-) Я оставил его в репо по историческим причинам, но, безусловно, есть проблемы с ним. FWIW, я планирую пересмотреть эту тему в ближайшие месяцы с прицелом на устранение этой проблемы, и поэтому я сделал это для изучения этого вопроса. Однако прямо сейчас у меня нет конкретных советов для вас - извинения. – CommonsWare