Android调用相册、相机(兼容6.0、7.0、8.0)

关于Android 项目调用系统相机 与调用系统相册的之后拿到照片的基本操作,我感觉好多人还是不太熟悉的哈。项目兼容 Android 5.0设备、Android 6.0设备、Android 7.0、Android 8.0等设备,下面请开始欣赏我的表演,先上动画,给大家看一下效果哈。

Android 5.0设备效果:

 

小米 2s 测试效果

Android 6.0设备效果:

小米4测试效果

Android 8.0 设备效果:

小米8se 测试

看了三个小动画,感觉就是相机效果越来越清楚了(说人话),好的回归正题

一、界面上定义了三个按钮,一个imageview代码还是扔上来吧,

这里没什么好说的,

二、引入框架

我这个人很懒,引入了 glide
图片加载框架和easypermissions动态权限申请框架,两个十分好用的框。

 

三、简单说一下easypermissions框架使用

众所周知,Android 6.0 开始 google 爸爸引入了动态权限机制,所谓来保护用户隐私(其实就是对开发者坑爹,个人见解)。但是我们必须处理啊,毕竟是google 爸爸。

以下仅仅以本项目所申请权限为例进行讲解。

1、AndroidManifest.xml 内操作

2、初始化集合装载权限

3、检查权限、申请权限

4、实现接口

在所运用权限申请的界面实现EasyPermissions.PermissionCallbacks接口

5、处理回调

四、调用相机 适配>=6.0以上设备

1、AndroidManifest.xml 内操作

其中,android:authorities="com.example.hxd.pictest.fileprovider"的值其实是:项目包名.fileprovider

2、创建file_paths.xml文件

在 项目 res 下面创建 xml 文件夹,xml文件夹下创建 file_paths.xml 文件,文件内写如下:内容

文件创建,如下图:

创建文件顺序

3、点击按钮拍照

4、获取照片并且展示

Android 6.0以上设备的照片路径 就是你声明的uri。

总结,截止到这里,你拍摄的照片就可以拿到并且进行显示了,这里使用到了强大的Glide 图片加载器省去了很多自己要写的代码。很方便。

五、相册内选照片

1、调去系统相册

2、获取相册返回的uri

这里封装了一个工具类,根据不同版本系统返回不同类型的uri ,这个工具类保留简单好用

3、拿到图片,展示图片

六、贴出 Activity 内完整代码

总结:没做事情之前,永远不要把事情想的特别难;每天进步一点点,不要嫌少,日久天长,也是满满的收获。

demo源码:PicTest

作者: RESSRC

个人资源站

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据