Tôi đang cố gắng để có được đường dẫn đường dẫn, không phải đối tượng bitmap.
Khi tôi truy vấn những điều này, một số đường dẫn hình thu nhỏ không có lý do nào. (Tôi có 1028 hình ảnh thu nhỏ trong thiết bị của mình, độ dài con trỏ thực sự là 1028, nhưng vẫn trả về giá trị rỗng) Tôi biết có 1028 hình thu nhỏ vì tôi đã kiểm tra. Dưới đây là mã của tôi:Lấy hình thu nhỏ của đường dẫn tệp hình ảnh
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();
My 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;
}
Dưới đây là logcat của tôi: http://pastebin.com/UZLZF9Pg
Sau khi kiểm tra, tôi thấy rằng các id tôi gửi cũng giống như các chỉ số cho vòng lặp. Tôi thậm chí không chắc chắn rằng mã của tôi là nghĩa vụ phải làm việc, vì vậy bất kỳ mã nào khác sẽ là tuyệt vời.
Tại sao bạn thiết DỰ bạn để MediaStore.Images.Thumbnails._ID và không MediaStore.Images.Thumbnails.DATA? –
@IgorGanapolsky Tôi không chắc chắn. Tôi nghĩ rằng tôi đã lấy ví dụ đó ra một nơi nào đó. Bạn có nghĩ rằng nó có thể giải quyết vấn đề? Dù sao thì, nó cũng không liên quan. – idish
Tôi đã hỏi vì tôi đã sử dụng {MediaStore.Images.Thumbnails.DATA}, giống như trong giải pháp và nó hoạt động. Vì vậy, tôi đã tò mò nếu bạn có một cách tiếp cận khác nhau. –