【问题标题】:Canvas trying to draw too large bitmap画布试图绘制太大的位图
【发布时间】:2017-12-15 06:41:17
【问题描述】:

当我尝试在 Android N 的 View Pager 中加载一组图像时遇到问题(检查三星 S6)。

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

图像尺寸为 960*720,大小为 64 k,View Pager 计数为 4

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

【问题讨论】:

  • 这个问题解决了吗?

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


【解决方案1】:

我的情况是,我通过转到我的清单并将 hardwareAcceleratedtrue 更改为 false 来解决它。 android:hardwareAccelerated="false",

【讨论】:

    【解决方案2】:

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

    解决方案:

    1. 使用 Final android Resizer 为所有 dpi 生成可绘制对象。
    2. 使用Glide 库有效地加载位图(它支持位图缓存和位图池)。
    3. 如果您的图像是单色的(如图标),那么您可以从 .SVG 或 .PSD 文件生成矢量绘图。了解更多here

    祝你好运:D

    【讨论】:

      猜你喜欢
      • 2020-03-22
      • 2018-07-29
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 2021-03-08
      • 1970-01-01
      相关资源
      最近更新 更多