Intereting Posts
Является ли com.android.camera.action.CROP недоступным для Android jelly bean 4.3? Android studio v0.3.2, gradle, google maps v2.0 Не нашел класс «com.google.android.gms.maps.MapFragment Текст редактирования пароля Android, отображающий текст Настроить диалоговое окно быстрого действия для Android Android AsyncTask для длительных операций Изменение размера логотипа AppCompat v21 Как сортировать / упорядочивать ключи объекта JSON в android? React Native Android: метод не переопределяет или не реализует метод из супертипа Тестирование выпуска и расширенная версия приложения для Android – NoSuchMethodError Android Launcher Icon – мои ресурсы по умолчанию / mdpi redudant? Случайно удаленная папка зависимостей android Не удается увидеть окончательное содержимое переменной внутри анонимного класса при отладке приложения Eclipse для Android Обновления RecyclerView только при прокрутке Невозможно установить значение DSCP в приложении Android. Итерирование Dom вызывает половину просмотра веб-страниц

Android, передняя и задняя камера Ориентация, пейзаж

В приложении для камеры вы можете переключаться между передней и задней камерами. Когда я делаю снимки с задней камерой, картина такая же, как и в режиме предварительного просмотра. Но когда я переключаюсь на переднюю камеру, изображение зеркально. Я думаю, что есть что-то такое, что передняя и задняя камера находятся в ландшафтном режиме. Я пробовал почти все ответы на SO.

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

Solutions Collecting From Web of "Android, передняя и задняя камера Ориентация, пейзаж"

Я нашел ответ, выполнив mCamera.setDisplayOrientationa(int degrees); не помогло. Мне нужно было отобразить сгенерированное растровое изображение, чтобы получить результат, который я хотел. Я использовал метод Matrix для достижения этого.

 float[] mirrorY = { -1, 0, 0, 0, 1, 0, 0, 0, 1}; Matrix matrix = new Matrix(); Matrix matrixMirrorY = new Matrix(); matrixMirrorY.setValues(mirrorY); matrix.postConcat(matrixMirrorY); image = Bitmap.createBitmap(mBitmap, 0, 0, frame.getWidth(), frame.getHeight(), matrix, true) 

Вопрос с передней камерой был определен как особый для Android 4.0+. Поэтому после того, как вы расшифровали байтовый массив в методе «onPictureTaken»,

  @Override public void onPictureTaken(byte[] data, Camera camera) { Bitmap photo = BitmapFactory.decodeByteArray(data,0,data.length); photo = rotateBitmap(photo); //.....do some stuff } 

Просто вызовите rotateBitmap, чтобы повернуть растровое изображение

  private Bitmap rotateBitmap(Bitmap bitmap){ Matrix rotateRight = new Matrix(); rotateRight.preRotate(90); if(android.os.Build.VERSION.SDK_INT > 13 && CameraActivity.frontCamera) { float[] mirrorY = { -1, 0, 0, 0, 1, 0, 0, 0, 1}; rotateRight = new Matrix(); Matrix matrixMirrorY = new Matrix(); matrixMirrorY.setValues(mirrorY); rotateRight.postConcat(matrixMirrorY); rotateRight.preRotate(270); } final Bitmap rImg= Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), rotateRight, true); return rImg; } 

Я думаю, что вы ищете setDisplayOrientation (int). Есть функция, которая может помочь на сайте dev:

http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation%28int%29