在Android中逐帧设置图像动画的最佳方法
我有3组50幅图像,我必须在Android应用程序中为每组图像创建动画。我能够创建一个简单的应用程序,使用下面的方法制作第一组50幅图像的动画 在drawable文件夹中添加了动画列表xml,并使用frameAnimation.start()调用它 直到我在清单文件中保留了下面的“android:largeHeap=“true”,这个方法才起作用 我不确定这是否是制作图像动画的好方法(如果我们有更多的图像,并且每个图像的大小都更大,比如60KB,图像是JPG格式的),或者不是 我浏览了一下,发现如果我们能够清除内存,如果我们能够在内存中保留更少的图像,那么我们的应用程序就会工作得很好。所以我想知道如何清除内存 请让我知道,我是否需要按照不同的方法来动画图像,而不是我上面解释的,以便我可以清除记忆 谢谢您的帮助。在Android中逐帧设置图像动画的最佳方法,android,performance,android-animation,android-memory,Android,Performance,Android Animation,Android Memory,我有3组50幅图像,我必须在Android应用程序中为每组图像创建动画。我能够创建一个简单的应用程序,使用下面的方法制作第一组50幅图像的动画 在drawable文件夹中添加了动画列表xml,并使用frameAnimation.start()调用它 直到我在清单文件中保留了下面的“android:largeHeap=“true”,这个方法才起作用 我不确定这是否是制作图像动画的好方法(如果我们有更多的图像,并且每个图像的大小都更大,比如60KB,图像是JPG格式的),或者不是 我浏览了一下,发现
请这样做。。
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>
---------------------
ImageView img=(ImageView)findViewById(R.id.some布局);
AnimationDrawable frameAnimation=(AnimationDrawable)img.getDrawable();
frameAnimation.setCallback(img);
frameAnimation.setVisible(true,true);
frameAnimation.start();
要添加动画,您可以执行以下操作
-----------------------------------------------
这样做。。
---------------------
ImageView img=(ImageView)findViewById(R.id.some布局);
AnimationDrawable frameAnimation=(AnimationDrawable)img.getDrawable();
frameAnimation.setCallback(img);
frameAnimation.setVisible(true,true);
frameAnimation.start();
要添加动画,您可以执行以下操作
-----------------------------------------------
在Android系统中以类似帧的方式处理大量图像不是一件好事,因为它会触发可怕的“内存不足”异常
无法清除内存本身。解决此问题的最佳方法是正确处理应用程序的位图
我不确定,但你可能想看看
这是一个HTML5引擎,我们以前用它来创建游戏。
通过绘制画布本身,我们已经用它重新创建了帧动画。但这只需要WebDev技能。在Android中以类似帧的方式处理大量图像不是一件好事,因为它会触发可怕的“内存不足”异常 无法清除内存本身。解决此问题的最佳方法是正确处理应用程序的位图 我不确定,但你可能想看看 这是一个HTML5引擎,我们以前用它来创建游戏。
通过绘制画布本身,我们已经用它重新创建了帧动画。不过这需要WebDev技能。在阅读了几篇文章并做了大量研究之后,我最终以编程方式修改Imageview中的图像以模拟帧动画。这样,我就可以在缓存中的任何时间点维护三个图像ime(上一个、当前和下一个)。我希望这对其他人有用。在阅读了几篇文章并做了大量研究之后,我最终以编程方式修改Imageview中的图像以模拟帧动画。这样我就可以在任何时间点在缓存中维护三个图像(上一个、当前和下一个)。我希望这对其他人有用。嗨,Brijesh,谢谢你的回复。我也采用了同样的方法。当我使用时,它会一次将所有图像加载到内存中。因此,我出现内存不足异常。请告诉我是否有其他方法来处理逐帧动画。嗨,Brijesh,谢谢你的回复。我采用了t他也是这样。当我使用时,它会一次将所有图像加载到内存中。因此,我的内存出现异常。请告诉我是否有其他方法来处理逐帧动画。嗨,你能为我提供一些有关创建帧动画的应用程序PhoneGap用法的链接或示例代码吗?谢谢你的帮助。S对于迟来的回复,我很抱歉。总结一下您想要看到的内容,它是这样的:setInterval(draw,1000);函数draw(){MyStage.clearRect(0,0,clearX,clearY);drawYourSprite(coordinateX,coordinaley,spriteWidth,spriteHeight);}它由web编程和javascript组成,因此如果你已经有了javascript的背景知识,那就容易多了。谢谢。我会试试这个。:)嗨,你能给我提供一些关于创建帧动画的应用程序PhoneGap用法的链接或示例代码吗?谢谢你的帮助。很抱歉回复太晚。总结一下你想要的内容让我看看,它是这样的:setInterval(draw,1000);function draw(){MyStage.clearRect(0,0,clearX,clearY);drawYourSprite(coordinateX,coordinateY,spriteWidth,spriteHeight);}它由web编程和javascript组成,所以如果你已经有了javascript的背景,那就容易多了。谢谢。我会试试这个。)