Obtenir des images miniature chemins d'accès aux fichiers
Je vais essayer d'obtenir les thumnail chemins, pas les images des objets.
Quand j'ai une requête pour ces, certains de la vignette chemins sont nuls pour une raison quelconque.
(J'ai 1028 images miniatures dans mon appareil, le curseur de la longueur est, en effet, 1028, mais encore de retour null) je sais qu'il y a 1028 images miniatures parce que j'ai vérifié.
Voici mon code:
String[] projection = {MediaStore.Images.Thumbnails._ID};
//Create the cursor pointing to the SDCard
cursor = this.getContentResolver().query( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection, //Which columns to return
null, //Return all rows
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
//Get the column index of the Thumbnails Image ID
Log.d(Global.TAG, "BEFORE");
columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID);
Log.d(Global.TAG, "AFTER1");
for(int i =0;i<cursor.getCount();i++){
cursor.moveToPosition(i);
Log.d("MyTag","BBABA" + i +" : " + getThumbnailPathForLocalFile(cursor.getLong(columnIndex)));
}
cursor.close();
Mon getThumbnailPathForLocalFile:
String getThumbnailPathForLocalFile(long fileId)
{
//Log.d(Global., msg)
Cursor thumbCursor = null;
try
{
thumbCursor = this.getContentResolver().
query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
, null
, MediaStore.Images.Thumbnails.IMAGE_ID + " = " + fileId+ " AND "
+ MediaStore.Images.Thumbnails.KIND + " = "
+ MediaStore.Images.Thumbnails.MINI_KIND , null, null);
if(thumbCursor.moveToFirst())
{
//the path is stored in the DATA column
int dataIndex = thumbCursor.getColumnIndexOrThrow( MediaStore.MediaColumns.DATA );
String thumbnailPath = thumbCursor.getString(dataIndex);
return thumbnailPath;
}
}
finally
{
if(thumbCursor != null)
{
thumbCursor.close();
}
}
return null;
}
Voici mon logcat:
http://pastebin.com/UZLZF9Pg
Après vérification, je vois que les id-je l'envoyer sont comme l'indice de la boucle for.
Je ne suis même pas sûr que mon code est censé fonctionner, de sorte que n'importe quel autre code sera grande.
- Pourquoi avez-vous réglé votre PROJECTION de MediaStore.Les Images.Les vignettes._ID et pas MediaStore.Les Images.Les vignettes.Les DONNÉES?
- Je ne suis pas sûr. Je crois que j'ai pris cet exemple quelque part.Pensez-vous qu'il peut résoudre le problème? De toute façon, c'est irrelavant déjà.
- Je suis a été demandé parce que j'ai utilisé {MediaStore.Les Images.Les vignettes.DONNÉES}, comme dans la solution, et cela a fonctionné. J'étais donc curieux de savoir si vous avez eu une approche différente.
- Heu, si tu aurais m'a dit qu'il y a quelques mois, vous pourriez résoudre moi tant de questions.. 🙁
Vous devez vous connecter pour publier un commentaire.
Vous devriez requête pour MediaStore.Les Images.Les vignettes.DONNÉES. Pour modifier votre exemple, il devrait ressembler à ceci.
Référence: Comment obtenir imagepath de vignette chemin d'une image?