问题描述
最近在开发中,需要删除合成在系统 DCIM文件下的图片。采用以下的方法
/**
* 删除单个文件
*
* @param filePath 被删除文件的文件名
* @return 文件删除成功返回true,否则返回false
*/
public static void deleteSingleFile(String filePath) {
File file = new File(filePath);
if (file.isFile() && file.exists()) {
file.delete();
}
}
发现在系统相册中依然存在与原图等大的黑色空白图。
解决方法
google后,万能的码友给出了方法,原来android系统的图片保存后会在media数据库中记录其缩略图,所以再删除对应的图片时,也要删除数据库中对应的记录,代码如下:
//filepath-->图片绝对路径
getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.DATA + "=?", new String[]{filepath});