2010-12-07 3 views
0

J'ai créé une liste de lecteurs vidéo avec une vignette vidéo. mais le temps d'affichage scorll est très lent .. comment puis-je afficher rapidement video thumnail? La liste de la vidéo est de 8 lignes .. et la source ->Android: Est-il possible d'afficher des vignettes vidéo très rapides?

ImageView imageView = null; 
Bitmap bm = null; 

bindView(View view, int iViewType, Context context,Cursor cursor, boolean bExpand) 
{ 
bm= MediaStore.Video.Thumbnails.getThumbnail(vmcontext.getContentResolver(),index, MediaStore.Video.Thumbnails.MINI_KIND, null); 
imageView.setImageBitmap(bm); 
} 

Je peux afficher la vignette vidéo. mais l'affichage de la liste ou l'affichage du défilement est très lent.

Répondre

1

Le moyen le plus simple est de créer votre propre contenu cacher.

Par exemple:

ImageView imageView = null; Bitmap bm = null; 
HashMap<String, ImageView> cacher = new HashMap<String, ImageView>(); 

bindView(View view, int iViewType, Context context,Cursor cursor, boolean bExpand) 
{ 
    if (cacher.containsKey("id")) 
    { 
    imageView.setImageBitmap(cacher.get("id")); 
    } 
    else 
    { 
    bm= MediaStore.Video.Thumbnails.getThumbnail(vmcontext.getContentResolver(),index, MediaStore.Video.Thumbnails.MINI_KIND, null); 
    cacher.put("id", bm); 
    imageView.setImageBitmap(bm); 
    } 
} 

Ce qui est bon si vue défilement de l'ongle du pouce d'affichage plusieurs fois les mêmes vignettes lorsque l'utilisateur défiler vers le haut et vers le bas. A la fin, tout le contenu mis en cache fera un défilement lissé.

De plus, si possible, vous pourriez faire une préextraction des vignettes, peupler le cacher, en utilisant une asyncTask avant que la grille des pouces soit affichée. N'oubliez pas de limiter et de rincer le cacher pour ne pas remplir la mémoire.

Tobia

Questions connexes