Refreshing the thumbnail using MediaScanner
我有一個關於縮略圖在Android的更新問題的內置畫廊。其實我已經打開,編輯並保存了在畫廊中選擇的圖像。
我打開離開畫廊並再次打開畫廊,然後該圖像的縮略圖不會更新。但是,我選擇了這個圖像,確實是編輯過的版本。
有沒有人有解決這個問題?我有搜索,但我得到了使用sendBroadcast()
刷新畫廊的答案,這似乎並沒有更新圖像預覽。
編輯
因爲假定用戶要保存不同名稱的文件,然後這個文件並不影響
Refreshing the thumbnail using MediaScanner
我有一個關於縮略圖在Android的更新問題的內置畫廊。其實我已經打開,編輯並保存了在畫廊中選擇的圖像。
我打開離開畫廊並再次打開畫廊,然後該圖像的縮略圖不會更新。但是,我選擇了這個圖像,確實是編輯過的版本。
有沒有人有解決這個問題?我有搜索,但我得到了使用sendBroadcast()
刷新畫廊的答案,這似乎並沒有更新圖像預覽。
編輯
因爲假定用戶要保存不同名稱的文件,然後這個文件並不影響
兩個建議,我不想刪除現有文件。
我打開android inbuilt畫廊使用意圖不是以編程方式創建畫廊 – Pratik 2012-01-02 11:37:42
我找到了解決此問題的方法,在請求新的縮略圖之前,您需要刪除舊的縮略圖。使用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);
可能重複://計算器。 com/questions/7805527/refreshing-the-thumbnail-using-mediascanner – rds 2012-01-02 11:45:57
我編輯了我的問題 – Pratik 2012-01-02 11:52:59
@Pratik對不起,你有答案嗎? – 2012-04-23 01:32:21