Ich versuche, die Thumnail Pfade, nicht die Bitmaps Objekte zu bekommen.
Wenn ich nach diesen abfrage, sind einige der thumbnail-Pfade aus irgendeinem Grund null. (Ich habe 1028 Miniaturansichten in meinem Gerät, die Cursor-Länge ist in der Tat 1028, aber immer noch NULL) Ich weiß, dass es 1028 Miniaturbilder gibt, weil ich überprüft habe. Hier ist mein Code:Get Bilder Miniaturbild-Pfade
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();
Mein 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;
}
mein logcat hier: http://pastebin.com/UZLZF9Pg
Nach der Überprüfung, wie ich sehe, dass die IDs Ich schicke wie der Index des für Schleife. Ich bin nicht einmal sicher, ob mein Code funktionieren soll, also wird jeder andere Code großartig.
Warum haben Sie setzen Ihre PROJECTION auf MediaStore.Images.Thumbnails._ID und nicht MediaStore.Images.Thumbnails.DATA? –
@IgorGanapolsky Ich bin mir nicht sicher. Ich denke, ich habe dieses Beispiel irgendwo genommen. Meinst du, es könnte das Problem lösen? Wie auch immer, es ist schon irrelevant. – idish
Ich habe gefragt, weil ich {MediaStore.Images.Thumbnails.DATA} verwendet habe, genau wie in der Lösung, und es hat funktioniert. Also war ich neugierig, ob Sie einen anderen Ansatz hatten. –