Android AnimationDrawable
Posted
技术标签:
【中文标题】Android AnimationDrawable【英文标题】: 【发布时间】:2013-03-04 10:36:09 【问题描述】:如何从代码而不是 xml 将图像加载到动画中,我有这个例子:
<!-- Animation frames are wheel0.png -- wheel5.png files inside the
res/drawable/ folder -->
<animation-list android:id="@+id/selected" android:oneshot="false">
<item android:drawable="@drawable/wheel0" android:duration="50" />
<item android:drawable="@drawable/wheel1" android:duration="50" />
<item android:drawable="@drawable/wheel2" android:duration="50" />
<item android:drawable="@drawable/wheel3" android:duration="50" />
<item android:drawable="@drawable/wheel4" android:duration="50" />
<item android:drawable="@drawable/wheel5" android:duration="50" />
</animation-list>
java 文件:
ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
img.setBackgroundResource(R.drawable.spin_animation);
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
frameAnimation.start();
我需要像这样加载图像:
for (int j = 0; j < 5; j++)
animation.addFrame(getResources().getDrawable(getResources().getIdentifier("wheel" + j,"drawable", getPackageName())), i);
我怎样才能把它结合起来?
【问题讨论】:
是什么阻止您创建AnimationDrawable
,然后像问题中的代码一样添加框架?
【参考方案1】:
int []imageArray=R.drawable.img1,R.drawable.img2,R.drawable.img3;
final Handler handler = new Handler();
Runnable runnable = new Runnable()
int i=0;
public void run()
imageView.setImageResource(imageArray[i]);
i++;
if(i>imageArray.length-1)
i=0;
handler.postDelayed(this, 50); //for interval...
;
handler.postDelayed(runnable, 2000); //for initial delay..
【讨论】:
以上是关于Android AnimationDrawable的主要内容,如果未能解决你的问题,请参考以下文章
Android - 释放分配的内存AnimationDrawable正在用完
Android_AnimationDrawable介绍及使用