注意:以下系统裁剪方案,最新原生安卓系统(8.0,pixel)运行正常。尽管大部分手机支持系统裁剪,但是裁剪的结果不可预知,可能会裁剪出图片,也可能没有,还有可能裁剪出来的图片不符合我们传入的参数要求。不推荐使用系统裁剪。
FileProvider
在Android7.0以上的系统中,如果利用Uri.fromFile方法获得uri,传递给相机会报错:
android.os.FileUriExposedException
根据Android 开发者官网资料,我们需要使用FileProvider。在manifest文件中配置provider标签,但要注意是写在Application标签里面,和activity同一级,因为它是四大组件之一。如果写在了外面会报错:
android.content.res.xmlresourceparser android.content.pm.providerinfo.loadxmlmetadata
下面是正确的provider配置方式:
console.live.camera为包名,大家根据需要改成自己的
这是filepaths的配置方式:
注意写的是external-files-path。也可以有其他写法,但必须与FileProvider.getUriForFile方法对应。
就是说