18

i need to load images from the Sd card into gridview. For efficiency i'm using Picasso Library

Picasso.with(activity).load(images.get(position).getDataPath())
            .resize(96, 96).centerCrop().into(viewHolder.image);

I used the following code in the adapter. unfortunately m unable to see any images so please can any one help.

Note And also can anyone suggest any efficient image loading library to load the images from the sd card.

Requirement I dont to load the image every time when scrolling. If it is already loaded dont load the image on scrolling

user3607798
  • 769
  • 2
  • 7
  • 15

3 Answers3

47

To load the file you need to convert it to a uri first

Uri uri = Uri.fromFile(new File(images.get(position).getDataPath()));

Picasso.with(activity).load(uri)
            .resize(96, 96).centerCrop().into(viewHolder.image);

Requirement I dont to load the image every time when scrolling. If it is already loaded dont load the image on scrolling

  • Picasso is excellent for this
Lena Bru
  • 13,521
  • 11
  • 61
  • 126
6

In Picasso version 2.5.2, you need to pass a File as argument to load method, so the image can be loaded as:

Picasso.with(context).load(new File(images.get(position).getDataPath()))
    .resize(96, 96).centerCrop().into(viewHolder.image);
Darshan Dorai
  • 659
  • 8
  • 10
4

I didn't want to create a new File because if the path was already obtained from an existing file, there is no need for a new object (want to see the already existing picture in the device).

According to Picasso docs you have to do something like this: file:///android_asset/DvpvklR.png

So I used to have: /storage/sdcard/Pictures/findyoursport/yoursport_1482358052384.jpeg

Prepending: file:// did the trick

cutiko
  • 9,887
  • 3
  • 45
  • 59