美文网首页关于Android开发的那些事儿
Android采用file.delete(),遗留缩略图问题

Android采用file.delete(),遗留缩略图问题

作者: Bear_android | 来源:发表于2017-03-13 10:44 被阅读85次

    问题描述

    最近在开发中,需要删除合成在系统 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});
    

    相关文章

      网友评论

      • 4a681b789d57:登录就为了赞一个~完美解决我的问题,感谢大佬~
        Bear_android:@yhonjs 能解决你的问题,我也很开心😄

      本文标题:Android采用file.delete(),遗留缩略图问题

      本文链接:https://www.haomeiwen.com/subject/psjfnttx.html