当前位置: 首页 > 知识库问答 >
问题:

如果是可绘制的xxhdpi,则部分显示图像

东郭兴学
2023-03-14

我正在通过这个工厂的ImageSwitcher显示图像:

    view_background.setFactory {
        val imageView = ImageView(this@MainActivity)
        imageView.scaleType = ImageView.ScaleType.CENTER_CROP
        imageView
    }

我在Nexus 5模拟器上正确显示了这个2341x1246 PNG2.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.

通过按照此答案中的建议将其放在Draable-xxhdpi中,它现在在两个设备上看起来都像这样:

这是我真正不想要的东西(第一种方式是正确的)。为什么以及如何解决这个问题?

共有2个答案

齐典
2023-03-14

为了避免这种错误,请尝试使用尽可能小的图像分辨率,而且图像视图也应该小,您也可以在更大和高分辨率的设备上获得OOM。最好的方法是在背景视图上使用png图像,背景可以是纯色或渐变色。通过这种方式,您可以使用可能不需要填充整个屏幕大小的较小图像。

岳均
2023-03-14

2341x1246 PNG 2.55 MB

画布:尝试绘制太大(142936136字节)位图

这看起来不是一个好方法。减小图像的大小并将图像放在可绘制目录中。

发生这种情况是因为你把图片放在了“drawable-xxhdpi”里面。看看这里的尺寸。

但是,在按照我的建议进行操作后,请使用FIT_XY来适应图像:

imageView.scaleType = ImageView.ScaleType.FIT_XY

您的应用程序中不需要2.5 MB的图像。这个尺寸太大了。

 类似资料:
  • 本文向大家介绍matplotlib.pyplot绘图显示控制方法,包括了matplotlib.pyplot绘图显示控制方法的使用技巧和注意事项,需要的朋友参考一下 在使用Python库时,常常会用到matplotlib.pyplot绘图,本文介绍在PyCharm及Jupyter Notebook页面中控制绘图显示与否的小技巧。 在PyCharm中显示绘图 在绘图代码最后加上“plt.show()”

  • 如果值为空,则需要在单元格中显示一个不间断的空格。这是我的模板: 我试过这个,但不管用: 它返回值的问题是: 如果许可证号带有值,则单元格为空,行颜色如下所示。 利用卢库马的建议,它表明了这一点: 更改筛选器中的if语句后,仍然不显示非值:

  • 当我运行以下代码时,即使没有收到任何错误消息,也不会显示绘图。 我试过以下方法:1)更换Spyder- 我正在使用Python 3.6和Anaconda附带的Spyder

  • 本文向大家介绍python绘制分布折线图的示例,包括了python绘制分布折线图的示例的使用技巧和注意事项,需要的朋友参考一下 用Python 绘制分布(折线)图,使用的是 plot()函数。 一个简单的例子: 结果: 以上就是python绘制分布折线图的示例代码的详细内容,更多关于python绘制分布折线图的资料请关注呐喊教程其它相关文章!

  • 我在CSV文件中有一些数据,想打印出来,但图形没有显示出来 这是CSV文件http://www.mediafire.com/file/2gtbxm5adom7m4j/pop.csv

  • 我有一个表与多个条目。在每个条目表行之后是一个编辑表行,带有一个跨列单元格,其中有一个动态加载超文本标记语言的DIV。问题是,当呈现这些空表行时,会导致页面上出现大量额外的空白。 我知道我不能直接将HTML动态加载到单元格中,所以我在单元格中有一个DIV,可以将内容加载到其中。 我想在子DIV为空时隐藏任何表行,并在信息被动态加载到子DIV后显示该表行。这个动态加载的信息也可以删除,所以我需要它再