画布试图绘制太大的位图

时间:2017-12-15 06:41:17

标签: android canvas bitmap android-viewpager android-drawable

当我尝试在Android N的View Pager中加载一组图像时出现问题(检查Samsung S6)。

java.lang.RuntimeException:Canvas:尝试绘制太大(132710400bytes)的位图。

图片尺寸为960 * 720,尺寸为64 k,查看传呼机数量为4

现在我将所有图像放在普通的“drawable”文件夹中。我尝试将所有图像替换为“drawable-xxhdpi”但问题仍然存在。

任何人都可以帮助找到问题。

2 个答案:

答案 0 :(得分:1)

Nougat在优化方面非常聪明。在你放入的任何可绘制目录中都没有关系。它将检测图像是否适合应用程序的流畅工作。如果不是,则会产生此异常。

<强>解决方案:

  1. 使用Final android Resizer为所有dpi生成drawable。
  2. 使用Glide库有效加载位图(它支持位图缓存和位图池)。
  3. 如果您的图像是单色的(如图标),那么您可以从.SVG或.PSD文件生成矢量绘图。了解详情here
  4. 祝你好运:D

答案 1 :(得分:0)

在我的情况下,我转到清单上并将hardwareAcceleratedtrue更改为false,以解决此问题。 android:hardwareAccelerated="false"