在开始之前,先做好准备工作,也就是权限问题,6.0、7.0的权限系统可以参考我的一篇博客:
传送门:https://my.oschina.net/u/1462828/blog/865749
系统相机好像是5.0之后有一个大修过,7.0又有一个大修过,具体是不是这样也不太记得了是具体哪个版本了,只是记得以前是直接调用相机,然后拿返回的图片值,再然后一个版本是设置好图片的存放路径才开始调用,现在最新的版本也是这样。原始的版本就不兼容了,现在是以24作为分界线,话不多说,上代码:
调用的话这么就算调用成功了,我个人的话,并不是很喜欢在onActivityResult中处理图片和接值,所以我更倾向于是新建一个Activity,然后创建一个静态接口,启动这个Activity的时候也将回调接口传过去,然后自动调用相机或者相册,等选中图片或者拍照之后,由这个Activity的onActivityResult方法中负责接收处理,然后再通过回调接口将值传回去。并且将照相机的权限请求操作放到这个Activity里面,那么使用的时候,就比较方便了。
因为我这里是自己写的相册+拍照,所以代码全部贴出来的话也不太合适,所以还是只贴部分关键代码出来吧:
最后看一下调用的代码,就很简单了: