Я загружаю разные изображения в свой RecyclerView, и я использую Picasso для их получения из Интернета, но случайным образом изображение с iPhone поворачивается вверх ногами, и я не понимаю, почему.
В интернете все выглядит хорошо.Случайное изображение поворачивается при использовании picasso
мой код:
Picasso.with(context)
.load(URLConstants.URL_BASE + imageURL)
.placeholder(image)
.error(image)
.into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Matrix matrix = new Matrix();
try {
ExifInterface exif = new ExifInterface(URLConstants.URL_BASE + imageURL);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
Log.d("EXIF", "Exif: " + orientation);
if (orientation == 6) {
matrix.setRotate(90);
} else if (orientation == 3) {
matrix.setRotate(180);
} else if (orientation == 8) {
matrix.setRotate(270);
}
} catch (Exception e) {
e.printStackTrace();
}
Bitmap oriented = Bitmap.createBitmap(bitmap, 0, 0,
bitmap.getWidth(), bitmap.getHeight(), matrix, true);
imageView.setImageBitmap(oriented);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
Я не знаю, если
ExifInterface exif = new ExifInterface(URLConstants.URL_BASE + imageURL);
работает с URL-адреса или нет.
И если они этого не делают, что у меня есть?
От вашего кода, вы настраиваете ориентацию от значения переменной «ИНТ ориентации». Я думаю, вы должны попробовать загрузить изображение без применения ориентации. –
как это сделать? –
Попробуйте более простой подход, Picasso.with (контекст) .load (URL) .placeholder (R.drawable.user_placeholder) .error (R.drawable.user_placeholder_error) .into (ImageView); –