首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏开发时位图大小超过VM预算

游戏开发时位图大小超过VM预算
EN

Stack Overflow用户
提问于 2012-03-31 20:24:43
回答 2查看 501关注 0票数 6

我正在开发一个android.Like塔防御游戏。我使用的是表面视图,我使用一些图像作为位图。现在,图像几乎是5-6 mb.And,我在运行游戏时遇到了这个错误:

位图大小超过VM预算

19464192字节的外部分配对于此进程来说太大了.

我把这样的图像称为

代码语言:javascript
复制
BitmapFactory.decodeResource(res, id)

我把它放在数组里。我不能缩放图像我都在用它们。我试过了

代码语言:javascript
复制
options.inPurgeable=true;  

它可以工作,但是图像加载得非常慢,我用它加载了一个spritesheet,当它加载时,我得到了非常低的fps。

我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2012-07-07 18:53:09

我也遇到过这个问题;除了减少一次加载的位图的数量/大小之外,没有其他解决方案。一些旧的Android设备只为整个应用程序分配16 is到堆中,而且位图一旦加载就会存储在未压缩的内存中,因此很容易超过16 is的大背景,等等( 854x480,32位位图大约是1.6MB未压缩)。

在我的游戏中,我能够通过只加载在当前级别上将要使用的位图来绕过它(例如,我有一个位图对象作为背景的对象,每次更改时都会从资源中重新加载,而不是在内存中维护多个位图。我只需维护一个int,它可以跟踪当前加载的资源。)

你的雪碧是巨大的,所以我认为你是对的,你将需要减少你的动画大小。或者,从资源加载是非常快的,所以您可能可以做一些事情,比如只为角色当前的方向加载动画条,并让他在转向时稍作停顿,而您可以用新的动画条替换它。但这可能会变得很复杂。

此外,我强烈建议在虚拟机堆设置为16 VM的模拟器上测试应用程序,以确保解决了所有设备的问题。(模拟器通常默认为24 go,因此很容易在发布后进行未经测试并生成一些1星级评论。)

票数 2
EN

Stack Overflow用户

发布于 2012-04-01 14:59:15

我不是一个游戏开发,但我想我认为我足够了解Android。

加载大小的图像几乎肯定会抛出错误。为什么文件大小的图像?

http://p-xr.com/android-tutorial-how-to-paint-animate-loop-and-remove-a-sprite/有一个例子。如果你注意到他的爆发力只有200 of。即使是更详细的图像也不会占用更多的文件空间。

好吧,一些建议:

  • ,您是将所有spritesheet加载到单个工作表中,还是每个spritesheet都位于单独的文件中?如果它们都在一个上面,我会把它们分开。
  • 降低了图像的分辨率,安卓设备是可移植的,有些只有一个低分辨率的屏幕。例如,HTC Wildfire的分辨率为240x320 (LDPI设备),是一个相当常见的设备。您还没有说明图像的尺寸,所以我们不能确定这是否实用。

最后,我不是一个游戏程序员,但我发现本教程(同一系列的一部分)很有启发性- http://p-xr.com/android-tutorial-2d-canvas-graphics/。我想知道您是否正在应用一种不适合Android的模式,但是如果没有代码,我将无法说明。

是对的,有些话题有点离题,但值得注意.

人们低估了观点的力量。虽然使用SurfaceView有一定的逻辑,但是标准视图本身将做很多事情。SurfaceView通常需要一个底层线程来运行(为了使它正常工作,您必须自己设置它)。但是,视图调用onDraw(),它可以以多种方式使用,包括postinvalidate()方法(参见What does postInvalidate() do?)。

在任何情况下,可能都值得查看本教程http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/。就个人而言,这是一个很好的自定义视图的例子,以及你可以用它们做什么。我重写了几个章节,并制作了一个怀表应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9959384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档