異常:java.lang.RuntimeException: Canvas: trying to draw too large(161740800bytes) bitmap


現象

今天做一個安卓項目的時候,我使用了10張圖片,這10張圖片都是放在了drawable目錄下。
根據這個錯誤,我在網上尋找解決問題的方案,然后我放在了mipmap-xxhdpi下結果可以運行。
但是這不是一個很好的解決方案,目前我是降低圖片資源的size解決的。

問題分析

從提示錯誤中,可以看出是canvas問題,也就是繪制問題,屬於oncreate生命周期就出現了問題,
原因是too large,在一個繪制周期內沒有繪制完成。

解決方案

因為圖片太大了,所以如果能夠縮小圖片大小,這理論上肯定是一種解決方案,而后面我也這么做了,的確成功了。
至於放在mipmap-xxhdpi 就是一個比較玄學的問題了。mipmap一般來說是放在圖標的地方,那么打包加載的時候肯定會做
一些處理。至於我為什么沒有去過多思考為什么換在mipmap-xxhdpi可行,是因為放在mipmap-xxhdpi下我發現可以運行,但是卡頓。
這不是一個很好的解決方案。正如我所說,壓縮圖片大小才是一種解決方案,如果有更好的方案,希望能夠help me to do best。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM