Intereting Posts
Запустить приложение JavaFX с внешними библиотеками в Android? Используйте брошюру в приложении для Android, чтобы показать онлайн-карту API Google Диска – Android – Как получить идентификатор файла диска? Проблемы с подключением Bluetooth с помощью IntentService Как создать Json с помощью JsonArray и JsonObject PropertyValuesHolder вызывает сбой при использовании в XML-анимации Вызвать статический java-метод другого пакета из собственного кода Android Studio – «Невозможно разрешить символьные» синтаксические выделения, хотя сборка в порядке Управление телефоном с ноутбука SpannableStringBuilder для создания String с несколькими шрифтами / размерами текста и т. Д. Пример? Android SDK в Eclipse дает ошибку об истекшем сертификате IntelliJ Idea не может создать новый Android-приложение Как событие «first_open» в аналитическом счете бомбы? Как добавить новую активность в существующий проект в Android Studio? Добавление событий для всех дней между датой начала и датой окончания в Google календаре Android

Автоматическое вращение камеры до 90 градусов

В моем коде ниже я пытаюсь сфотографироваться с помощью встроенной камеры и загружать на сервер, но когда я воспринимаю ее как портрет и просматриваю ее в галерее как ландшафт, а это значит, что ее поворачивают на 90 градусов. Помощь Pls: –

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, REQUEST_CAMERA); @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { if (requestCode == REQUEST_CAMERA) { handleCameraPhoto(); } private void handleCameraPhoto() { Intent mediaScanIntent = new Intent( "android.intent.action.MEDIA_SCANNER_SCAN_FILE"); File f = new File(mCurrentPhotoPath); Uri contentUri = Uri.fromFile(f); mediaScanIntent.setData(contentUri); getActivity().sendBroadcast(mediaScanIntent); } 

Как я могу повернуть изображение перед сохранением на SD-карту?

Я также столкнулся с такой проблемой, показывая изображения в списке. Но, используя данные EXIF, мне удалось найти работу для правильной ориентации изображений.

Это был подготовлен растровый объект для отображения:

  Matrix matrix = new Matrix(); matrix.postRotate(getImageOrientation(url)); Bitmap rotatedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); 

Это метод, используемый во второй строке выше кода для поворота ориентации изображения.

  public static int getImageOrientation(String imagePath){ int rotate = 0; try { File imageFile = new File(imagePath); ExifInterface exif = new ExifInterface( imageFile.getAbsolutePath()); int orientation = exif.getAttributeInt( ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_270: rotate = 270; break; case ExifInterface.ORIENTATION_ROTATE_180: rotate = 180; break; case ExifInterface.ORIENTATION_ROTATE_90: rotate = 90; break; } } catch (IOException e) { e.printStackTrace(); } return rotate; } 

Возможно, это не точный ответ на ваш вопрос, он работал для меня и надеюсь, что он будет полезен для вас.

 Matrix matrix=new Matrix(); imageView.setScaleType(ScaleType.MATRIX); //required matrix.postRotate((float) angle, pivX, pivY); imageView.setImageMatrix(matrix); This method does not require creating a new bitmap each time.. Hope this works.