项目需求:在本地系统添加图片文件后,本地系统不能立刻就生成其对应的缩略图;
而删除本地图片文件后,有些版本的系统或者不同的厂商手机,不会立即将其对应的本地系统缩略图删除,要重启手机才能更新,此时就需要我们手动去强制处理:
【1】生成本地缩略图:
/**
* 让本地系统生成缩略图
* @param context 上下文句柄
* @param path 要生成缩略图的原图完整路径
*/
public static void createThumb(Context context, String path){
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATA,path);//-------1
context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
}
注:标记1处的MediaStore.Images.Media.DATA中的Images可以改为Video、Audio,这样如果是视频,会生成对应的缩略图
【2】删除本地缩略图
/**
* 让本地系统删除缩略图
* @param context 上下文句柄
* @param path 要删除缩略图的原图完整路径
*/
public static void deleteThumb(Context context,String path){
context.getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI
, MediaStore.Images.Media.DATA+"=?"
, new String[]{path});
}
保险起见,我在进行以上操作后,再发出广播,让系统刷新本地媒体库,具体可以查看android刷新媒体库