2012-03-15 51 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文件夹,并创建一个新文件夹。