1

我有 3 组 50 张图像,我必须在 Android 应用程序中为每组图像创建动画。我可以创建一个简单的应用程序,使用以下方法为第一组 50 个图像设置动画,

在 drawable 文件夹中添加了 Animation-list xml 并使用 frameAnimation.start() 调用它。

在我在清单文件中保留以下“android:largeHeap="true" 之前,此方法不起作用。

我不确定这是否是动画图像的好方法(如果我们有更多的图像并且每个图像的大小更大,例如 60 KB。图像是 JPG 格式)与否

我浏览并发现,如果我们能够清除内存并且能够在内存中保持较少数量的图像,那么我们的应用程序将运行得很好。所以我想知道如何清除内存?

请让我知道我是否需要按照我上面解释的以外的其他方法为图像设置动画,以便我可以清除内存。

谢谢你的帮助。

4

3 回答 3

2
    Do this way..
    ---------------------            
         ImageView img = (ImageView)findViewById(R.id.some layout);
         AnimationDrawable frameAnimation =    (AnimationDrawable)img.getDrawable();
         frameAnimation.setCallback(img);
         frameAnimation.setVisible(true, true);
         frameAnimation.start();


    and to add animation you can do something like 
   -----------------------------------------------
  <animation-list   android:id="@+id/my_animation" android:oneshot="false" 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/frame1" android:duration="150" />
    <item android:drawable="@drawable/frame2" android:duration="150" />

 </animation-list>
于 2013-09-20T07:24:04.133 回答
1

在查看了几篇文章并进行了大量研究后,我最终以编程方式修改了 Imageview 中的图像以模拟帧动画。这样,我只是在任何时间点(上一个、当前和下一个)在缓存中维护三个图像。我希望这对其他人有用。

于 2013-12-29T20:42:06.583 回答
-2

在 Android 本身中以类似帧的方式处理大量图像并不是一件好事,因为它会触发可怕的“内存不足”异常。

清除内存本身是不可能的。解决此问题的最佳方法是对应用程序进行正确的位图处理。

我不确定,但您可能想查看PhoneGap

它是我们之前用来创建游戏的 HTML5 引擎。通过绘制到画布本身,我们用它重新创建了帧动画。不过,它只需要 WebDev 技能。

于 2013-09-20T07:33:45.450 回答