2012-03-21 59 views
0

我用下面的代碼刪除縮略圖,以達到照片的路徑和ID:通過ID

String[] projection = {MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA, MediaStore.Images.ImageColumns.DATA}; 
Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media._ID); 
int count = cursor.getCount(); 
int image_column_index = cursor.getColumnIndex(MediaStore.Images.Media._ID); 
int image_path_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA); 
int i; 
for(i = 0; i < count; i++) { 
cursor.moveToPosition(i); 
long id = cursor.getInt(image_column_index); 
String p = cursor.getString(image_path_index); 
photo.add(id, p); 
} 

,並使用下面的代碼來獲取縮略圖:當我刪除一張照片由其路徑

bitmap = MediaStore.Images.Thumbnails.getThumbnail(this.getApplicationContext().getContentResolver(), id, MediaStore.Images.Thumbnails.MICRO_KIND, null); 

。 刪除人員的縮略圖仍然存在。 如何同時刪除縮略圖?

+0

什麼是照片?你不能使用你在那個for循環中得到的'id'來查詢'MediatStore.Images.Thumbnails'提供程序並刪除縮略圖嗎? – Luksprog 2012-03-21 07:35:27

+0

photo is LinkedList 。 – brian 2012-03-21 07:50:07

+0

我不知道如何通過id獲取縮略圖位置或通過id刪除它。 – brian 2012-03-22 02:30:44

回答

1

您應該能夠使用id從查詢的圖像(MediaStore.Images.Media._ID列),然後查詢MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URIMediaStore.Images.Thumbnails.IMAGE_ID等於ID(IMAGE_ID刪除縮略圖是相同的ID從MediaStore.Images.Media._ID的ID )。

long id = cursor.getInt(image_column_index); // this is the id from MediaStore.Images.Media._ID but also the IMAGE_ID from MediaStore.Images.Thumbnails 

// if you delete the photo with this above id and also want to delete the thumbnail: 
ContentResolver cr = getContentResolver(); // in an Activity 
cr.delete(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, 
       MediaStore.Images.Thumbnails.IMAGE_ID + " = ?", new String[] {"" + id}); 

我沒有起到多大與MediaStore所以這可能是錯誤的。