【问题标题】:Large bitmap not being drawn未绘制大位图
【发布时间】:2015-08-30 04:02:18
【问题描述】:

我正在开发一款游戏,我正在加载一个 5120 宽和 116 高的大图像。当我尝试使用

将其绘制到屏幕上时
canvas.drawBitmap(land, 0, 0, paint);

什么都画不出来。但是,当我使用具有相同方法调用的较小文件 (512x116) 时,它会被绘制。有图像大小限制吗?我的图像是 750 KB。此外,最大画布宽度和高度为 8192。提前致谢!

编辑:

我在日志中注意到了这一点: 位图太大,无法上传到纹理中(20480x464,max=8192x8192)

好像我的位图比它的实际大小大 4 倍。为什么会这样?

编辑 2:发现问题。 Bitmapfactory 返回一个更大的文件,因为它将尺寸乘以我的屏幕密度。所以文件最终太大了。

【问题讨论】:

    标签: android canvas bitmap


    【解决方案1】:

    我没有使用 Canvas 布局,但尝试在您的 Manifest 中使用 largeHeap = "true"

    【讨论】:

    • 谢谢,但没有帮助。但是我在日志中注意到了这一点: Bitmap too large to be uploading into a texture (20480x464, max=8192x8192) 好像我的位图比它的实际大小大 4 倍......我使用的是 png 所以也许它是什么与文件类型有关吗?
    • 发现问题。 Bitmapfactory 正在返回一个更大的文件,因为它是通过我的屏幕密度来计算尺寸的。所以文件最终太大了。
    猜你喜欢
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多