Je joue avec les vignettes d'android depuis un moment et j'ai vu des incohérences qui me donnent envie de crier. Mon but est d'avoir une liste simple de toutes les images (et une liste séparée pour la vidéo) avec la vignette et le nom de fichier.Vignettes de médias Android. De graves problèmes?
Appareil: HTC Evo (frais de Google I/o)
Tout d'abord: http://androidsamples.blogspot.com/2009/06/how-to-display-thumbnails-of-images.html
Ce code ne semble pas fonctionner du tout, les vignettes sont dupliqués ... certains avec le " miroir "effet et certains sans. Certains ne chargeront pas et afficheront simplement un carré noir. J'ai essayé de reconstruire les vignettes en supprimant le répertoire "alblum thumbs" de la carte SD. L'application de galerie de HTC semble montrer tout bien.
Cette approche semble fonctionner:
Bitmap thumb = MediaStore.Images.Thumbnails.getThumbnail(
getContentResolver(),
id, MediaStore.Video.Thumbnails.MICRO_KIND, null);
imageView.setImageBitmap(curThumb);
où id est l'id d'origine images et imageView est une vue de l'image. C'est bien! Mais, étrangement, beaucoup trop lent pour être utilisé dans un SimpleViewBinder. approche suivante:
String [] proj = {MediaStore.Images.Thumbnails._ID};
Cursor c = managedQuery(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
proj, MediaStore.Images.Thumbnails.IMAGE_ID + "=" +id ,
null, null);
if (c != null && c.moveToFirst()) {
Uri thumb = Uri.withAppendedPath(mThumbUri,c.getLong(0)+"");
imageView.setImageURI(thumb);
}
Je dois expliquer que je sens le besoin où condition est nécessaire car il ne semble pas y avoir de garantie que vos uri auront le même ID pour les deux une vignette et son image mère. Cela fonctionne pour toutes les images actuelles, mais dès que je commence à ajouter des images avec l'appareil photo, elles apparaissent comme vierges! Débogage montre un redouté:
SkImageDecoder::Factory returned null
erreur et l'URI est retourné comme non valide. Ce sont les mêmes images qui fonctionnent avec l'appel précédent. Quelqu'un peut-il soit attraper mon échec logique ou me diriger vers un code de travail?
je suis allé à la première approche et a utilisé un fil pour charger réellement la vignette. L'approche d'Uri est tellement plus rapide ... c'est dommage que je ne puisse pas comprendre! – Ralphleon