android 图片选择框架 动态权限申请框架 使用

因为android经常使用到添加图片功能,每次自己写都太麻烦,再加上动态权限的获取,非常容易弄混出错,所以整理一下,以后都这么用,慢慢熟悉。

1、图片选择框架用知乎的 Matisse

GitHub - zhihu/Matisse: A well-designed local image and video selector for Android

Matisse 知乎图片选择框架 - 简书

2、动态权限申请用 XmPermissions

GitHub - lhm0603/XmPermissionsProject: Android动态权限申请框架

Android动态权限申请框架_h461415832的博客-CSDN博客_android 权限申请框架

注意事项 : Matisse 需要自己额外再配置provider ,还要自己引入glide依赖,在调用拍照功能的时候 ,用如下方法

MediaStoreCompat mediaStoreCompat = new MediaStoreCompat(MainActivity.this);
mediaStoreCompat.setCaptureStrategy(new CaptureStrategy(true, "PhotoPicker"));//自己设置的provider属性
mediaStoreCompat.dispatchCaptureIntent(MainActivity.this, 2016);
Uri currentPhotoUri = mediaStoreCompat.getCurrentPhotoUri();
String currentPhotoPath = mediaStoreCompat.getCurrentPhotoPath();
Log.d("lol", "onClick: currentPhotoUri   " + currentPhotoUri);
Log.d("lol", "onClick: currentPhotoPath   " + currentPhotoPath);
//uri 和 path 都能用
Glide.with(MainActivity.this).load(currentPhotoPath).into(imageView);

不要从 onActivityResult 方法里拿data ,因为data里是空的,这是因为拍照时,提前创建了jpg文件,只是把照片内容保存在已经创建好的文件里,而不是把图片文件作为data返回。(如果按照一般模式,把图片作为data返回,图片会被压缩,变得很模糊)


版权声明:本文为qq_37973828原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。