坑:Android从相册中选择图片加载到ImageView中显示不出
📋本文目錄
- 坑:
- 最終解決:
坑:
在申請了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"即可解決
參考鏈接:https://www.jianshu.com/p/e1f043a263a6
最終解決:
在 AndroidManifest.xml 文件中不僅需要加上<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ,還需要在application標簽下新增 android:requestLegacyExternalStorage="true" ,如下圖:
然后圖片就能成功地從相冊中加載到ImageView中啦!當然了,如果圖片過大的話需要進行壓縮再加載到內存中,不然可能會導致程序崩潰。
總結
以上是生活随笔為你收集整理的坑:Android从相册中选择图片加载到ImageView中显示不出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C8051F500 C8051F50X
- 下一篇: android sina oauth2.