2017-09-29 1 views
-1

Je charge des images dans ArrayList, puis je le règle sur RecylerView avec GridLayout. Les images sont chargées et tout a l'air bien. Mais quand je fais défiler le RecylerView il commence à être en retard. Bien que les images soient complètement chargées, il y a un décalage pendant le défilement. Certaines réponses que j'ai trouvées concernaient le chargement paresseux des images ou l'utilisation de bibliothèques Glide ou Picasso. Mais comment puis-je l'implémenter? Voici comment j'ajoute des images.RecylerView Lags lors de l'ajout d'images de Drawable à ArrayList

MainActivity:

int imageArray[] = new int[]{ 
     R.drawable.one, 
     R.drawable.two, R.drawable.three, 
     R.drawable.four,R.drawable.five,... 
}; 
private ArrayList prepareData(){ 
    ArrayList arrayList = new ArrayList(); 
    for(int i=0;i<names.length;i++){ 
     MyModel myModel = new MyModel(); 
     myModel.setDrawable(imageArray[i]); 
     arrayList.add(myModel); 
    } 
    return arrayList; 
} 

Voici mon code Adaptateur:

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 
    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.images_card, viewGroup, false); 
    return new ViewHolder(view); 
} 

@Override 
public void onBindViewHolder(ViewHolder viewHolder, int i) { 

    viewHolder.tv_logo.setImageResource(mArrayList.get(i).getDrawable()); 
} 

Répondre

1

Si vous utilisez Glide puis utilisez le code ci-dessous pour charger votre image drawable en imageview utilisant Glide

Glide.with(context).load(R.drawable.yourImage).into(imageView); 

Où "contexte" est le contexte de votre activité et "imageView" est votre objet de ImageView

+0

Je n'utilise pas Glide ou Picasso et je dois ajouter ce code où? – Rohn

+0

vous devez ajouter compiler 'com.github.bumptech.glide: glide: 4.0.0' dans votre fichier .gradle et ensuite utiliser le code ci-dessus dans votre adaptateur –

0

Vous pouvez également utiliser le code natif de votre bibliothèque d'appel réseau qui affiche des images, et également s'il y a une sorte de retard, vous pouvez ajouter une barre de progression dans votre vue d'image pour une bonne expérience utilisateur et aussi utilisez AppCompatImageView au lieu de ImageView dans votre mise en page.