2012-03-15 54 views
0

我用的是線下獲得縮略圖:重命名照片的文件名,但是縮略圖是錯誤的

bitmap = MediaStore.Images.Thumbnails.getThumbnail(act.getApplicationContext().getContentResolver(), fid, MediaStore.Images.Thumbnails.MICRO_KIND, null); 

我嘗試用下面的代碼來重命名文件名:

File rename = new File(oldname); 
String newpath = newname; 
rename.renameTo(new File(newname)); 

及以下使用代碼更新數據庫:

IntentFilter intentfilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED); 
intentfilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED); 
intentfilter.addDataScheme("file"); 
MediaScannerReceiver scanSdReceiver = new MediaScannerReceiver(); 
registerReceiver(scanSdReceiver, intentfilter); 
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath()))); 

public class MediaScannerReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 
String action = intent.getAction(); 
if(action.equals("android.intent.action.MEDIA_SCANNER_FINISHED")) { 
bitmap = MediaStore.Images.Thumbnails.getThumbnail(act.getApplicationContext().getContentResolver(), fid, MediaStore.Images.Thumbnails.MICRO_KIND, null); 
} 
} 
} 

文件更名成功,文件ID也得到了新的。 但縮略圖顯示是錯誤的。 如何獲得正確的縮略圖?

回答

1

它可能會導致縮略圖不被刪除。 重命名後的文件具有相同的ID。 因此,顯示舊的縮略圖。 您可以嘗試清潔/sdcard/DCIM/.thumbnails文件夾,並創建一個新文件夾。