如果在drawable-xxhdpi中,图像会部分显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果在drawable-xxhdpi中,图像会部分显示相关的知识,希望对你有一定的参考价值。
我通过这个工厂的ImageSwitcher显示图像:
view_background.setFactory {
val imageView = ImageView(this@MainActivity)
imageView.scaleType = ImageView.ScaleType.CENTER_CROP
imageView
}
我正在Nexus 5仿真器上正确显示这个2341x1246 PNG
2.55 MB图像:
但是,如果我在Nexus 6上使用它,它会崩溃:
E/androidRuntime: FATAL EXCEPTION: main
Process: com.example.llovagn.t4r, PID: 4693
java.lang.RuntimeException: Canvas: trying to draw too large(142936136bytes) bitmap.
按照drawable-xxhdpi
回答中的建议把它放在this中,它现在在两个设备上都是这样的:
哪些是我不想要的东西(第一种方式是正确的)。为什么以及如何解决这个问题?
2341x1246 PNG 2.55 MB
画布:试图绘制太大(142936136bytes)的位图
这看起来不是一个好方法。减小图像的大小并将图像放在drawable
目录中。
这是因为你把图片放在“drawable-xxhdpi”里面。看看尺寸in here。
但是,按照我的建议,使用FIT_XY
来适应图像:
imageView.scaleType = ImageView.ScaleType.FIT_XY
您的应用程序中不需要2.5 MB的映像。那个尺寸太大了。
为了避免这种错误,尝试使用尽可能小的图像分辨率,图像视图也应该很小,你也可以在更大和更高分辨率的设备上获得OOM。最好的方法是在背景视图上使用png图像,其中背景可以是纯色或渐变。通过这种方式,您可以使用可能不需要填充整个屏幕尺寸的较小图像。
以上是关于如果在drawable-xxhdpi中,图像会部分显示的主要内容,如果未能解决你的问题,请参考以下文章
DRAWABLE-V21 中的 Android drawble-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 子文件夹也适用于 DRAWABLE-V23?
BUGandroid.content.res.Resources$NotFoundException: File res/drawable-xxhdpi/toolbar_line.png from