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

Android画布:绘制太大的位图

费凯康
2023-03-14

我正在运行Ubuntu 16.04。在Android Studio上,当我试图在模拟器中运行我的应用程序时,我得到以下错误:

致命的例外:主要过程:项目名称在这里,PID: 2528java.lang.运行时间例外:画布:试图绘制太大(216090000bytes)位图。在android.view.DisplayListCanvas.throw如果不能绘制(DisplayListCanvas.java:260)在android.graphics.13/>View.draw(View.java:17185)在android.view.View.updateDisplayListIfDirty(View.java:16167)在android. view的android.view.视图(View. java: 16951)。在android. view的ViewGroup.绘图儿童(ViewGroup. java: 3727)。在android. view的ViewGroup.调度绘图(ViewGroup. java: 3513)。在android. view的View. updateDisplayListIfDirty(View. java: 16162)。在android. view的ViewGroup. Draw(ViewGroup. java: 3513)等...

我确实不得不经历一些困难来让我的模拟器工作,但是,需要创建一个系统链接,这样我就可以在AMD上运行模拟器。不确定这是否是问题的一部分。对于我来说,我不明白为什么它会继续这样做。在我的团队中,还有其他人在相同的仿真手机和SDK上仿真该项目。

共有3个答案

司空丰
2023-03-14

这个解决方案对我有效。

在清单应用程序标记中添加这些行

android:largeHeap="true"
android:hardwareAccelerated="false"

    
郤飞英
2023-03-14

解决方案是将图像从绘图/文件夹移动到绘图-xxhdpi/文件夹,其他人也提到过。

但同样重要的是要理解为什么这个有点奇怪的建议真的有帮助:

原因是早期版本的android中存在drawable/文件夹,它相当于drawable mdpi。当在xxhdpi设备上使用仅在drawable/文件夹中的图像时,可能已经很大的图像会放大3倍,在某些情况下会导致图像的内存占用爆炸。

邵羽
2023-03-14

将您在(hi-res)绘图中的图像移动到绘图-xxhdpi。但是在应用程序开发中,您不需要使用大图像。它会增加您的APK文件大小。

 类似资料:
  • 我试图使用矩阵旋转位图。然后我试着把它画在画布上。但它就这么消失了! 下面是我的代码: } 我已经删除了缩放画布和事件监听器等的函数。使代码小而易读。 我周期性地调用setDirection方法,但是在它被调用之后,“userImage”drawable就消失了。有人能告诉我这里出了什么问题吗。。 谢谢

  • 当我在logcat中查找时,我看到以下消息: 在我的第一个活动中,我将这个问题追溯到一个ImageView,它显示了一个漂亮的大背景图像。问题中的图像是2048x1066,并且在我的通用目录中,因此无论密度如何,都将使用此图像。 当设置为时,一切正常。但是当我进入时,它就会停止工作。如果我然后用一个较小的映像交换出来,它会在下工作,但是如果我上升到下,它会再次停止工作。 我的猜测是,调整会使您的设

  • 我有一个发布的应用程序在Android N上启动时崩溃,因为新引入的

  • 如何获取我手指的触摸事件和运动事件然后绘制?

  • 我目前正在使用画布开发一个JavaFX-Drawing-Application。在GraphicsContext的帮助下,我使用beginPath()和lineTo()方法绘制线条,但我无法找到实现橡皮擦的适当方法。