在Android中从DCIM删除图像后,画廊缩略图有多清晰

时间:2016-05-18 06:35:12

标签: java android

我在捕获后删除图像并对其进行一些处理。但删除图像库后直到按住缩略图。在Android中从DCIM删除图像后,图库缩略图的清晰程度。

private boolean deleteLastFromDCIM() {

boolean success = false;
try {
    File[] images = new File(Environment.getExternalStorageDirectory() + File.separator + "DCIM"+File.separator+"Camera").listFiles();
    File latestSavedImage = images[0];
    for (int i = 1; i < images.length; ++i) {
        if (images[i].lastModified() > latestSavedImage.lastModified()) {
            latestSavedImage = images[i];
        }
    }

            // OR JUST Use  success = latestSavedImage.delete();
    success = new File(Environment.getExternalStorageDirectory()
            + File.separator + "DCIM/Camera/"
            + latestSavedImage.getAbsoluteFile()).delete();
    return success;
} catch (Exception e) {
    e.printStackTrace();
    return success;
}}


if(file.exists()){
    Calendar time = Calendar.getInstance();
    time.add(Calendar.DAY_OF_YEAR,-7);
    //I store the required attributes here and delete them
    Date lastModified = new Date(file.lastModified());
    if(lastModified.before(time.getTime()))
    {
        //file is older than a week
    }
    file.delete();
}else{
    file.createNewFile();
}

1 个答案:

答案 0 :(得分:2)

只需要编写删除文件的方法并替换代码file.delete();使用deleteFileFromMediaStore(this.getContentResolver(),file);

    public  void deleteFileFromMediaStore(final ContentResolver contentResolver, final File file) {
    String canonicalPath;
    try {
        canonicalPath = file.getCanonicalPath();
    } catch (IOException e) {
        canonicalPath = file.getAbsolutePath();
    }
    final Uri uri = MediaStore.Files.getContentUri("external");
    final int result = contentResolver.delete(uri,
            MediaStore.Files.FileColumns.DATA + "=?", new String[] {canonicalPath});
    if (result == 0) {
        final String absolutePath = file.getAbsolutePath();
        if (!absolutePath.equals(canonicalPath)) {
            contentResolver.delete(uri,
                    MediaStore.Files.FileColumns.DATA + "=?", new String[]{absolutePath});
        }
    }
}