Как загрузить изображение с SD-карты с помощью библиотеки Picasso
Мне нужно загрузить изображения с карты Sd в gridview.
Для эффективности я использую Picasso Library
Picasso.with(activity).load(images.get(position).getDataPath())
.resize(96, 96).centerCrop().into(viewHolder.image);
Я использовал следующий код в адаптере. к сожалению, я не вижу никаких изображений
поэтому, пожалуйста, можете помочь кому-нибудь.
Примечание
А также кто-нибудь может предложить любую эффективную библиотеку загрузки изображений для загрузки изображений с SD-карты.
Требование
Я не загружаю изображение каждый раз при прокрутке. Если он уже загружен, не загружайте изображение при прокрутке
Ответы
Ответ 1
Чтобы загрузить файл, вам необходимо сначала преобразовать его в uri
Uri uri = Uri.fromFile(new File(images.get(position).getDataPath()));
Picasso.with(activity).load(uri)
.resize(96, 96).centerCrop().into(viewHolder.image);
Требование Я не загружаю изображение каждый раз при прокрутке. Если оно уже загружен, не загружайте изображение при прокрутке
- Пикассо отлично подходит для этого
Ответ 2
В версии 2.5.2 Picasso вам необходимо передать файл как аргумент для метода загрузки, поэтому изображение можно загрузить как:
Picasso.with(context).load(new File(images.get(position).getDataPath()))
.resize(96, 96).centerCrop().into(viewHolder.image);
Ответ 3
Я не хотел создавать new File
, потому что если путь уже был получен из существующего файла, нет необходимости в новом объекте (хотите увидеть уже существующее изображение на устройстве).
Согласно документам Пикассо, вы должны сделать что-то вроде этого:
file:///android_asset/DvpvklR.png
Итак, у меня было:
/storage/sdcard/Pictures/findyoursport/yoursport_1482358052384.jpeg
Prepending: file://
сделал трюк