2012-01-02 28 views
1

可能重複如何更新Android圖庫的縮略圖預覽圖像後,編輯

Refreshing the thumbnail using MediaScanner

我有一個關於縮略圖在Android的更新問題的內置畫廊。其實我已經打開,編輯並保存了在畫廊中選擇的圖像。

我打開離開畫廊並再次打開畫廊,然後該圖像的縮略圖不會更新。但是,我選擇了這個圖像,確實是編輯過的版本。

有沒有人有解決這個問題?我有搜索,但我得到了使用sendBroadcast()刷新畫廊的答案,這似乎並沒有更新圖像預覽。

編輯

因爲假定用戶要保存不同名稱的文件,然後這個文件並不影響

+0

可能重複://計算器。 com/questions/7805527/refreshing-the-thumbnail-using-mediascanner – rds 2012-01-02 11:45:57

+0

我編輯了我的問題 – Pratik 2012-01-02 11:52:59

+0

@Pratik對不起,你有答案嗎? – 2012-04-23 01:32:21

回答

0

兩個建議,我不想刪除現有文件。

  • 嘗試getThumbnail。從javadoc,我希望它能重新生成一個最新的縮略圖。
  • 如果不更新縮略圖,請嘗試刪除縮略圖。
+0

我打開android inbuilt畫廊使用意圖不是以編程方式創建畫廊 – Pratik 2012-01-02 11:37:42

0

我找到了解決此問題的方法,在請求新的縮略圖之前,您需要刪除舊的縮略圖。使用MediaStore和ContentResolver的這個

private static void removeThumbnails(ContentResolver contentResolver, long photoId) { 
Cursor thumbnails = contentResolver.query(Thumbnails.EXTERNAL_CONTENT_URI, null, Thumbnails.IMAGE_ID + "=?", new String[]{String.valueOf(photoId)}, null); 
for (thumbnails.moveToFirst(); !thumbnails.isAfterLast(); thumbnails.moveToNext()) { 

    long thumbnailId = thumbnails.getLong(thumbnails.getColumnIndex(Thumbnails._ID)); 
    String path = thumbnails.getString(thumbnails.getColumnIndex(Thumbnails.DATA)); 
    File file = new File(path); 
    if (file.delete()) { 

     contentResolver.delete(Thumbnails.EXTERNAL_CONTENT_URI, Thumbnails._ID + "=?", new String[]{String.valueOf(thumbnailId)}); 

    } 

} 

您可以從它的URI得到PHOTOID,從文件名獲得URI剛創建的文件,並從中解析URI的http

Uri uri = Uri.fromFile(file);