Iam разрабатывает приложение для камеры по этой ссылке http://developer.android.com/guide/topics/media/camera.html Я следовал за учебником, но как только я установил ориентацию экрана в портретный режим, мой предварительный просмотр камеры автоматически поворачивается на 90 градусов. как это исправить?Камера автоматически поворачивается на 90 градусов в портретном режиме
0
A
ответ
2
На поверхности, которая содержит экземпляр камеры, вы должны реализовать несколько методов. один из них - надстрочный. в этом методе вы должны обновить ориентацию следующим образом:
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
...
this.setCameraDisplayOrientation(this.cameraId, this.mCamera);
...
}
И реализации:
/**
* Calling this method makes the camera image show in the same orientation as the display.
* NOTE: This method is not allowed to be called during preview.
*
* @param cameraId
* @param camera
*/
@SuppressLint("NewApi")
public void setCameraDisplayOrientation(int cameraId, android.hardware.Camera camera) {
int rotation = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result;
if (Utils.hasGingerbread()) {
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
result = (info.orientation + degrees) % 360;
result = (360 - result) % 360; // compensate the mirror
} else { // back-facing
result = (info.orientation - degrees + 360) % 360;
}
} else {
// on API 8 and lower devices
if (context.getResources().getConfiguration().orientation !=Configuration.ORIENTATION_LANDSCAPE) {
result = 90;
} else {
result = 0;
}
}
try {
camera.setDisplayOrientation(result);
} catch (Exception e) {
// may fail on old OS versions. ignore it.
e.printStackTrace();
}
}
0
Вращение будет зависеть от устройства. У меня уже была эта проблема, и решение, которое я нашел, использовало this method.
Смежные вопросы
- 1. Камера растягивается в портретном режиме
- 2. Appcelerator - Изображение с камеры поворачивается на 90 градусов для Android
- 3. Камера Arcball, инвертирующая на 90 градусов азимута
- 4. OpenCV Android - улучшенная камера в портретном режиме
- 5. Почему мое изображение поворачивается на 90 градусов до его масштабирования?
- 6. Почему видео поворачивается на 90 градусов на ПК?
- 7. Android-камера Сохранение изображений в портретном режиме
- 8. Positioning вход поворачивается на 90 градусов внутри DIV
- 9. Вращение страницы 90 градусов
- 10. Камера просто работает в портретном режиме
- 11. Камера Android находится в ландшафтном исполнении, но используется в портретном режиме.
- 12. Как поддержать вариант 180 градусов для iPad в портретном режиме?
- 13. Карта повернута на 90 градусов?
- 14. Zxing - Изменение вида камеры -90 градусов
- 15. Получение zxing для работы в портретном режиме
- 16. Изображение повернуто на 90 градусов в Chrome
- 17. iphone изображение, снятое с камеры, автоматически вращается -90 градусов
- 18. Изображение повернуто на 90 градусов при самообмене
- 19. Android: ориентация предварительного просмотра камеры в портретном режиме
- 20. Камера поворачивается после фотографирования в ландшафте, андроид
- 21. Захваченное изображение повернуто на 90 градусов собственное
- 22. iOS изображения JPEG повернуты на 90 градусов
- 23. Инициализация повернуть 90 градусов
- 24. повернуть изображение на 90 градусов
- 25. Радиан 90 градусов на 45
- 26. Поверните форму на 90 градусов
- 27. Вращение CALayer на 90 градусов?
- 28. Новое поле подписи, повернутое на 90 градусов
- 29. Фото, повернутое после съемки в портретном режиме
- 30. Android полностью вращается на -90 градусов
это происходит только тогда, когда вы устанавливаете ориентацию экрана? –
Если мы не установим поворот экрана, тогда возникнет только эта проблема. –