2017-09-09 1 views
-2

J'ai trouvé une galerie d'images démo sur le lien ci-dessous: http://www.androidauthority.com/how-to-build-an-image-gallery-app-718976/Comment ajouter OnScrollListener à une démo de galerie d'images?

Mais il est de charger toutes les images ensemble. Comment ajouter OnScrollListeners à ce projet?

+0

Voulez-vous configurer scrollView pour voir toutes les images en les faisant défiler? @learner –

+0

Mes images proviennent de la base de données. Le chargement de toutes les images ralentit l'application. Je n'ai aucune idée de comment le réparer. Mais je pense que si je peux charger des images sur Scroll et seulement les images qui sont au point, cela va résoudre le problème. @ Abhishek kumar – learner

+0

@ Abhishek kumar - Je suis nouveau pour le développement Android. C'est ma 3ème application et je suis coincé ici depuis 1 mois. Pas capable de comprendre, comment puis-je charger les images de la base de données onScroll et seulement pour les images qui sont affichées. Si vous pouvez m'aider, ce sera vraiment génial. – learner

Répondre

1

Vous devez faire un code sur votre adaptateur OnBindViewHolder() méthode

Voici votre code:

@Override 
public void onBindViewHolder(MyAdapter.ViewHolder viewHolder, int i) { 
    viewHolder.title.setText(galleryList.get(i).getImage_title()); 
    viewHolder.img.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    viewHolder.img.setImageResource((galleryList.get(i).getImage_ID()));   
} 

Dans le code ci-dessus onBindViewHolder(MyAdapter.ViewHolder viewHolder, int i) ici int i est la position de l'image en obtenant position vous pouvez effectuer une action dans OnBindViewHolder.

@Override 
public void onBindViewHolder(MyAdapter.ViewHolder viewHolder, int i) { 
    viewHolder.title.setText(galleryList.get(i).getImage_title()); 
    viewHolder.img.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    viewHolder.img.setImageResource((galleryList.get(i).getImage_ID()));  
    Log.e("POSITION",""+i); //This will show you position on LOG. 
    Toast.makeText(getApplicationContext()," "+i,Toast.LENGTH_SHORT).show(); 

    //Example : Hiding second position image 
    if(i==2){ 
     viewHolder.img.setVisibility(View.GONE); 
      } 

} 

Remarque: RecyclerView OnBindViewHolder appelle dans chaque ligne, donc ce que vous devez faire le code juste à l'intérieur des OnBindViewHolder.Its ne pas fixer des images en une seule fois Recyclerview obtenir des images en appelant OnbindViewHolder pour chaque ligne et le réglage les images.

+0

Merci beaucoup Abhishek. Je vais l'implémenter et vous le faire savoir. Merci beaucoup :-) – learner

+0

Lisez d'abord la documentaion de recyclerVoir comment cela fonctionne (Flux de RecyclerView) Je suis juste mis ici une logique simple pour vous faire savoir comment ses données de réglage. –

+0

Bien sûr. Je vous remercie ! – learner