Я боролся с этой ошибкой в последний месяц или около того. Каждый раз, когда я думаю, что я исправил его, он, кажется, возвращается в той или иной форме.Ориентация изображения - Android
Это старый Android-образчик «Изображение повернуто на 90 градусов». Я прочитал бесчисленные сообщения здесь (StackOverFlow), а также попробовал множество методов, но просто не могу их исправить.
Я по-прежнему получаю изображения, которые вращаются неправильно.
В моем приложении пользователь выбирает свой профиль Picture, который затем устанавливается в ImageView. Изображение выбрано из галереи телефонов
Два дня назад я реализовал следующий код, это сработало для всех изображений, которые я тестировал на моем телефоне. Однако, когда один из моих бета-тестировщиков попробовал это, его образы снова были повернуты. Он прислал мне изображения для тестирования, но они отображались на моем телефоне. Поэтому почему я все больше расстраиваюсь.
Это метод я использую, чтобы получить ориентацию изображения:
// Gets an Images Orientation
public static int getOrientationEXIF(Context context, Uri uri) {
int orientation = 0;
try {
ExifInterface exif = new ExifInterface(uri.getPath());
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
orientation = 90;
return orientation;
case ExifInterface.ORIENTATION_ROTATE_180:
orientation = 180;
return orientation;
}
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
тогда я получаю повернутый Bitmap, используя этот метод:
// Rotate a Bitmap
public static Bitmap rotate(float rotationValue, String filePath) {
Bitmap original= BitmapFactory.decodeFile(filePath);
int width = original.getWidth();
int height = original.getHeight();
Matrix matrix = new Matrix();
matrix.postRotate(rotationValue);
Bitmap rotated = Bitmap.createBitmap(original, 0, 0, width, height, matrix, true);
return rotated;
}
Я просто не знаю, что делать больше ,
Я бы очень хотел, что если кто-то может помочь мне понять это
Спасибо заранее
UPDATE
Я просто увидел следующую строку кода в моем журнале после реализации предложенных методов:
JHEAD can't open 'file:/external/images/media/3885'
Я не уверен, что это означает
UPDATE # 2
Я думаю, что я, возможно, устранил проблему, я получил правильный путь изображений для файла.
Ричард - сделал дополнительное ExifInterface Ориентация на самом деле помочь вам ? Извините за задержку, когда у меня был раунд гольфа ... –
Не стоит беспокоиться :). Кажется, так до сих пор. Мой бета-тестер ушел, поэтому он попросит его проверить его, когда он вернется. Но это определенно помогло с другими проблемами, которые у меня были сегодня. Большое спасибо :). – Richard
Рад видеть здесь. Снова просто обратите внимание, что ориентация камеры будет отличаться для каждого устройства на основе реального оборудования. Некоторые устройства могут иметь более тонкую рамку, которая может привести к повороту камеры в любом направлении 90 или более градусов. –