2016-09-14 2 views
0

Je suis en train de développer un gestionnaire de fichiers, lorsque je détecte des images dans le répertoire en cours, je voudrais montrer une vignette à l'utilisateur. Je peux le faire, le seul problème est que quand il y a des images dans le répertoire, toute l'interface utilisateur devient lente et décalée. Je voudrais demander des moyens d'améliorer les performances. Voici les morceaux de code:Problème de performance chargement des images miniatures dans RecyclerView

Ici je vérifie si le fichier est une image:

fileName = file.getName(); 
fileName = fileName.substring(fileName.lastIndexOf('.') + 1); 
if(fileName.equals("jpg")) 
     dir.add(new Item(ff.getName(), ff.length() + " Byte", date_modify, ff.getAbsolutePath(), "image_icon")); 

Voici le code FileAdapter pour définir la imageView de la vue recycleur ligne:

if(item.getImage().equals("image_icon")){ 
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(item.getPath()), 
         100, 100); 
holder.icon.setImageBitmap(ThumbImage); 
} 

Tell moi si plus de code est nécessaire.

+0

utilisation [Glide] (https://github.com/bumptech/glide) pour charger des images – Nikhil

Répondre

0

Ajouter dans les dépendances

compile 'com.github.bumptech.glide:glide:3.7.0' 

Et écrire dans votre adaptateur

Glide.with(mContext).load(imgUrl) 
      .thumbnail(0.5f) 
      .crossFade() 
      .diskCacheStrategy(DiskCacheStrategy.ALL) 
      .into(holder.icon); 
+0

Merci, maintenant il est pas laggy, mais il charge les images lentement. Y a-t-il des moyens de le rendre plus rapide? –