我已将所有图像从 mipmap 文件夹移至可绘制文件夹,因为据说 mipmap 文件夹仅用于应用程序图标来启动应用程序Mipmap 与可绘制文件夹(这个答案得到了841个赞)。但是,当我现在想要启动我的应用程序时,我收到一条错误消息
FATAL EXCEPTION: main
Process: com.example.td.barapp, PID: 4331
java.lang.RuntimeException: Canvas: trying to draw too large(188394348bytes) bitmap.
at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)
在几个相关问题中,人们告诉我们将图片存储在不同的可绘制文件夹中(请参阅Android:了解可绘制文件夹)如drawable-xxhdpi 或drawable-xxxhdpi。
Update: I was told by someone in this post (who later deleted his answers) to store the image (which has a size of 1,7 MB) in the folder drawable-anydpi. I did as he said but the outcome on the Emulator looks quite bad for an imageview (see screenshot):
Then I moved the same file back into the folder mipmap-xxxhdpi and now it looks good again. So my question now is, whether it is also okay to have the image in the mipmap-xxxhdpi folder instead of the drawable folder? I'd be happy for every advice because I am quite confused now.
java.lang.RuntimeException:Canvas:也尝试绘制
大(188394348字节)位图
这个异常主要是因为你试图显示一个大图像〜188MB,它将具有高分辨率,并且android对此进行了限制,这也报告here.
原因之一是为了节省设备资源;例如你可能会得到java.lang.OutOfMemory
,因此系统从中节省设备内存。
1, 2, 3可能会彻底指导您。
通常,您可以在应用程序中使用几兆字节的图像~0-3MB。
第三方库如Glide & Picasso在 ImageView 上显示图像时提供磁盘、网络和内存管理技术。
您可以考虑的选项之一是在加载图像之前调整图像大小,因此可以查看this问题。
请记住,Android 对应用程序商店中的 apk 文件进行了限制,因此您需要因此最小化图像,或者从后端服务器加载它们。
正如您提到的,您只能将应用程序图标放在 res\mipmap 中。如果您决定将图像放在应用程序上,那么以不同的密度(hdpi、xhdpi、xxhdpi、xxxhdpi...)创建它们会很有效,因此它们可以匹配所有各种设备分辨率,并让您避免图像失真或由 Android 操作系统进行高处理,以便在显示图像之前将图像与设备分辨率相匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)