美文网首页
Android 删除拍照后相册自动保存的图片

Android 删除拍照后相册自动保存的图片

作者: B_f773 | 来源:发表于2019-02-22 14:00 被阅读0次

通过MediaStore.Video.Media.query获取资源进行删除(有些版本无法正常删除)

 private void deletImage() {
        ContentResolver resolver = getContentResolver();
        Cursor cursor = MediaStore.Images.Media.query(resolver,
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Images.Media._ID},
                MediaStore.Images.Media.DATA + "=?",
                new String[]{tempImgPath}, null);
        boolean res = false;
        if (cursor.moveToFirst()) {
            long id = cursor.getLong(0);
            Uri contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            Uri uri = ContentUris.withAppendedId(contentUri, id);
            int count = getContentResolver().delete(uri, null, null);
            res = count == 1;
        } else {
            File file = new File(tempImgPath);
            res = file.delete();
        }
        //如果要删除的图片是收藏的图片,则要从收藏的表里删除
        if (!res) {
            Toast.makeText(SignatureActivity.this, "删除失败,可以在系统图库中删除。", Toast.LENGTH_LONG).show();
        }
    }
  • 获取多媒体资源
public static final Cursor query(ContentResolver cr, Uri uri, String[] projection,
                        String selection, String [] selectionArgs, String orderBy)
  • 解析:

ContentResolver cr :
ContentResolver是应用与资源之间的衔接人,它的示例通常可以通过在Activity中调用的getContentResolver()方法中获取
Uri uri:
前面提到的多媒体文件的第一种地址描述
eg: MediaStore.Images.Media.EXTERNAL_CONTENT_URI 图片的外部库地址
--
String[] projection:这个参数限定了返回的内容(列Column)。
eg: new String[]{ MediaStore.Images.Media.DISPLAY_NAME,MediaStore.Images.Media._ID } :限定了返回的结果中只包含图片的 DISPLAY_NAME 和 _ID 信息
--
String selection:
设置条件,相当于SQL语句中的where。null表示不进行筛选。
eg: MediaStore.Images.Media.DATA + "=?'tempImgPath'" ,只返回名称为 helloworld 的图片数据。
--
String [] selectionArgs:
这个参数是要配合selection参数使用的,如果你在selection 参数里面有?,那么你在selectionArgs写的数据就会替换掉?
eg:当 selection = MediaStore.Images.Media.DATA + “=?” ,selectionArgs= new String[]{"tempImgPath"}的效果与上个例子是一样的
--
String orderBy:
按照什么进行排序,相当于SQL语句中的Order by。默认排序是升序,+" ASC"写不写效果都一样。如果想要结果按照ID的降序排列:orderBy=MediaStore.Images.Media._ID+" desc " 。


作者:haha_zhan
来源:CSDN
原文:https://blog.csdn.net/haha_zhan/article/details/52584331
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

  • Android 删除拍照后相册自动保存的图片

    通过MediaStore.Video.Media.query获取资源进行删除(有些版本无法正常删除) 获取多媒体资...

  • 热门手机壁纸

    点击图片保存手机(苹果(Android)壁纸-长按图片-保存图片。保存后,返回相册并将其设置为手机壁纸!因为都是高...

  • iPhone壁纸:豪车壁纸

    点击图片保存手机(苹果(Android)壁纸-长按图片-保存图片。保存后,返回相册并将其设置为手机壁纸!因为都是高...

  • 苹果Android壁纸

    点击图片保存手机(苹果(Android)壁纸-长按图片-保存图片。保存后,返回相册并将其设置为手机壁纸!因为都是高...

  • 高清手机壁纸

    点击图片保存手机(苹果(Android)壁纸-长按图片-保存图片。保存后,返回相册并将其设置为手机壁纸!因为都是高...

  • 小程序原生API收集--媒体API

    1、从相册选择图片,或使用相机拍照 2、预览图片 3、获取图片信息 4、保存图片到系统相册

  • 按时间分类的自定义相册

    按时间排序,图片视频混排的相册功能 功能简介 添加图片:图片来源于拍照,或者视频截图 删除图片:主界面多项删除图片...

  • Android中Uri和Path之间的转换

    Android中Uri和Path之间的转换 原因 调用系统拍照应用,拍照后要保存图片,那么我们需要指定一个存储图片...

  • 照片框架PhotoKit使用记录

    1、创建自定义相册并命名 2、保存图片至相册 3、从指定相册读取照片资源 4、删除指定相册的指定图片 5、将相册中...

  • Android 图片选择器 进阶版

    GalleryPick 图片选择器 GalleryPick 是 Android 自定义相册,实现了拍照、图片选择(...

网友评论

      本文标题:Android 删除拍照后相册自动保存的图片

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