Android11裁剪,Andorid 11调用系统裁剪

本文介绍了Android 11中由于分区存储导致的图片裁剪问题及解决方案。当应用尝试使用系统裁剪功能时,由于权限限制,无法访问私有目录中的文件。解决方法是在Android 11及以上版本,将裁剪图片的输出路径设置为公共目录。通过Environment.getExternalStoragePublicDirectory()获取公有目录路径,并在裁剪意图中设置额外参数,确保系统裁剪应用能够访问并保存裁剪后的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着各大厂商对android11的升级推送,现在已经有了一定android11的机型,关于android11的适配网上有很多相关的文章

这里主要强调下android11的分区存储一般情况下遇到的问题。

一般非垃圾清理类app或者没有特殊需求的app,主要在调用图片裁剪会遇到android11的问题。

如小米10:

b71d9ef58eaa

小米10裁剪.jpg

b71d9ef58eaa

小米10裁剪报错.jpg

小米10报错:保存时发生错误,保存失败

纠其原因就是android11在更新后,会强制使用分区存储:

在tagSdk<30(29未忽略分区存储情况下requestLegacyExternalStorage=true)其他应用,无法访问app私有目录下的文件;所以导致了上图出现系统裁剪应用,无法访问app下的裁剪副本,这里就讲到了系统裁剪功能流程:

1:在拍照或者相册中拿到图片的uri

2:创建图片intent传入ImageType:intent.setDataAndType(uri, "image/*")

3:创建裁剪输出路径:intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse("file://"+ mOnputFile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值