web-dev-qa-db-fra.com

Comment charger une image depuis une carte SD à l'aide de la bibliothèque Picasso

j'ai besoin de charger des images de la carte Sd dans gridview. Pour plus d'efficacité, j'utilise Picasso Library

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

J'ai utilisé le code suivant dans l'adaptateur. Malheureusement, je ne peux voir aucune image, alors s'il vous plaît, quelqu'un peut vous aider.

Note Et n'importe qui peut aussi suggérer n'importe quelle bibliothèque efficace de chargement d'image pour charger les images de la carte SD.

Condition Je ne charge pas l'image à chaque fois lors du défilement. S'il est déjà chargé, ne chargez pas l'image lors du défilement

18
user3607798

Pour charger le fichier, vous devez d'abord le convertir en uri

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

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

Condition Je ne charge pas l'image à chaque fois lors du défilement. S'il est déjà chargé, ne chargez pas l'image lors du défilement

  • Picasso est excellent pour cela
47
Lena Bru

Dans Picasso version 2.5.2, vous devez passer un fichier comme argument pour charger la méthode, de sorte que l'image puisse être chargée comme:

Picasso.with(context).load(new File(images.get(position).getDataPath()))
    .resize(96, 96).centerCrop().into(viewHolder.image);
6
Darshan Dorai

Je ne voulais pas créer de new File car si le chemin a déjà été obtenu à partir d'un fichier existant, il n'est pas nécessaire de créer un nouvel objet (vous voulez voir l'image déjà existante dans l'appareil).

Selon la documentation de Picasso, vous devez faire quelque chose comme ceci: file:///Android_asset/DvpvklR.png

Alors j'avais l'habitude d'avoir: /storage/sdcard/Pictures/findyoursport/yoursport_1482358052384.jpeg

Prepending: file:// a fait l'affaire

4
cutiko