我的Android应用程序中有一项活动,如下图所示:
说明:
我使用视图动画(http://developer.android.com/guide/topics/graphics/view-animation.html)为圈子制作动画,只显示一个。
但是我在一些设备和仿真器中得到了OutOfMemory异常。我曾经测试过。
我将布局更改为使用3个ImageView,一个使用3个内圈的一个图像,另一个使用1个外圈,每个使用相同的图像文件但尺寸不同,我正在设置它们启用和禁用他们的知名度。因此,我只使用了2张图片而不是5张。
通过这种方法,我停止了OutOfMemory异常,我猜是因为我正在加载并显示比以前更少的图像。
仅供参考,我在文件夹中放置了不同的图像尺寸:
内存有限吗? 有没有人有更好的解决方案建议,所以我可以继续使用我的5圈图像?
应用程序很小,所以没有必要去使用OpenGL。
谢谢!
答案 0 :(得分:0)
是的,Android系统仅为一个应用程序保证16MB内存,但制造商可以允许更多(通常他们这样做)。但是他们并不局限于此,所以如果你超过这个限制,你可以在很多内存不足的设备上获得OutOfMemoryException
。
答案 1 :(得分:0)
如果它只是圆形,则不需要实际的位图图像,但可以使用ShapeDrawable
。这样可以节省圆形图像的所有内存(并且可以在所有分辨率中产生完美的圆形)。
来自another SO item的简单示例:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
<gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
android:angle="270"/>
</shape>