2015-07-06 2 views
1

На некоторых (все?) Устройствах Samsung (Galaxy S5, S3) Picasso не отображается изображения из галереи.Picasso не отображается Изображения из галереи на некоторых устройствах Samsung

Это код:

File[] picFiles = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).listFiles(); 

File file = picFile[0]; 

Я пробовал:

Picasso.with(getActivity()).load(Uri.fromFile(file)).into(imageView); 

, а также

Picasso.with(getActivity()).load("file://" + file.getAbsolutePath()).into(imageView); 

безрезультатно. На всех не Samsung устройств Бот фрагменты работают отлично:

Путь к файлам не отличаться от других устройств, например:

/storage/emulated/0/Pictures/JPEG_20150706_112313_826588781.jpg 

Что может быть проблема?

EDIT: Да, я добавил android.permission.READ_EXTERNAL_STORAGE. Файл существует, и изображение отображается в приложении галереи.

EDIT 2: Это stracktrace от Пикассо:

07-13 07:22:22.817 14648-14921/xy I/dalvikvm﹕ "Picasso-/storage/emulated/0/Pictures/JPEG_20150713_071858_-1853613631.jpg" prio=5 tid=51 RUNNABLE 
07-13 07:22:22.817 14648-14921/xy I/dalvikvm﹕ at com.squareup.picasso.BitmapHunter.decodeStream(BitmapHunter.java:142) 
07-13 07:22:22.817 14648-14921/xy I/dalvikvm﹕ at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:217) 
07-13 07:22:22.817 14648-14921/xy I/dalvikvm﹕ at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) 
07-13 07:22:22.817 14648-14921/xy I/dalvikvm﹕ at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411) 
07-13 07:22:23.167 14648-14918/xy﹕ "Picasso-/storage/emulated/0/Pictures/JPEG_20150713_071858_-1853613631.jpg" prio=5 tid=49 RUNNABLE 
07-13 07:22:23.167 14648-14918/xy﹕ at com.squareup.picasso.BitmapHunter.transformResult(BitmapHunter.java:558) 
07-13 07:22:23.167 14648-14918/xy﹕ at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:232) 
07-13 07:22:23.167 14648-14918/xy﹕ at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) 
07-13 07:22:23.167 14648-14918/xy﹕ at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411) 

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

Версия Picasso - 2.5.2, я могу воспроизвести ошибку на Samsung S3 с Android 4.4.4 и Samsung S5 с Android 5.0.

UIL загружает одно и то же изображение просто отлично, так что это, вероятно, ошибка в Picasso, я, вероятно, напишу отчет об ошибке в своем github.

LAST EDIT: Проблема на самом деле была исключением OOM, которое ускользало от моего внимания, потому что я отфильтровал свой LogCat за неправильные ключевые слова. Мне сейчас стыдно.

picasso.load().fit().into() 

Работы и изображение отображается. Спасибо за вашу помощь.

+1

Вы добавили ** андроида .permission.READ_EXTERNAL_STORAGE ** в манифест? –

+0

@UditMukherjee Да, я сделал. – FWeigl

+1

Включили ли вы отладку в Picasso? Проверьте логарифм; вы можете получить «OutOfMemoryError». Когда я загружаю фотографии с помощью Picasso, я проверяю высоту, ширину и размер, чтобы избежать ошибки OOM, используя 'picasso.resize (1000, 1000) .centerInside(). В (imageView);' когда изображение больше размеров экрана. –

ответ

3

Возможно, вы загрузили очень большие изображения, которые могут привести к OutOfMemoryError. Вы можете изменить размер Bitmap и сохранить соотношение сторон.

Пример получения ширины и высоты растрового изображения без загрузки его в память:

File file = new File("/path/to/some/picture.jpg"); 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
BitmapFactory.decodeFile(file.getAbsolutePath(), options); 
int width = options.outWidth; 
int height = options.outHeight; 

Говори Пикассо, чтобы изменить размер изображения, чтобы избежать OutOfMemoryError:

if (width > MAX_WIDTH || height > MAX_HEIGHT) { 
    Picasso.with(context).load(uri) 
     .resize(MAX_WIDTH, MAX_HEIGHT) 
     .centerInside() 
     .into(yourImageView); 
} 
+0

Не работает устройство android L, не знаю, почему http://stackoverflow.com/questions/34149550/image-view-not-set-in-android-l-using-picasso-after-loading-from-gallery –

Смежные вопросы