📋本文目录
坑:最终解决:坑:
在申请了android.permission.WRITE_EXTERNAL_STORAGE
权限后,从相册里选择的图片还是一直不能加载到ImageView中,通过对整个代码部分可能有问题的地方都加了log、Toast进行检查,是没问题的,能一路顺畅地运行到最后一步。
(通过调用相机拍照的照片也能正常地显示出来,我就更迷惑了😶)
然后还好我瞅了瞅Logcat
,发现在我选择照片之后竟然有一个open failed: EACCES (Permission denied)
!!!我不是已经给了权限了吗😶
在程序中的是否授权的判断语句中也是通过了的:
于是我在网上疯狂查,查到各种奇奇怪怪的,几乎都没能解决问题。其中还有大部分的文章是围绕 “onActivityResult()方法中的判断条件把resultCode
写成requestCode
的问题” 来解决的,我不知说什么好😅
终于,看到了下面的这篇:
里面解释的是:
安卓Q(10)开始,就采用存储的分区控制,只能通过手动打开权限,才能使用存储权限。
解决方法:
在AndroidManifest.xml的
application
标签下新增android:requestLegacyExternalStorage="true"
即可解决
参考链接:/p/e1f043a263a6
最终解决:
在AndroidManifest.xml文件中不仅需要加上<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
,还需要在application
标签下新增android:requestLegacyExternalStorage="true"
,如下图:
然后图片就能成功地从相册中加载到ImageView中啦!当然了,如果图片过大的话需要进行压缩再加载到内存中,不然可能会导致程序崩溃。
如果觉得《坑:Android从相册中选择图片加载到ImageView中显示不出》对你有帮助,请点赞、收藏,并留下你的观点哦!