得到了帧文件后我们可以就编写代码,在res目录下新建anim动画文件夹,写下如下代码
<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="150" android:drawable="@drawable/xiu0"
/>
<item android:duration="150" android:drawable="@drawable/xiu1"
/>
<item android:duration="150" android:drawable="@drawable/xiu2"
/>
<item android:duration="150" android:drawable="@drawable/xiu3"
/>
</animation-list>
对应的item 为顺序的图片从开始到结束,duration为每张逐帧播放间隔,oneshot 为false 代表循环播放,设置为true 即播放一次即停止。
对应Activity 代码如下编写:
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public
class animActivity extends Activity implements OnClickListener {
ImageView iv =
null ;
/* * Called when the activity is first created. */
@Override
public
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv = (ImageView) findViewById(R.id.ImageView01);
iv.setOnClickListener( this );
}
@Override
public
void onClick(View v) {
// TODO Auto-generated method stub
AnimationDrawable anim =
null ;
Object ob = iv.getBackground();
anim = (AnimationDrawable) ob;
anim.stop();
anim.start();
}
}
使用AnimationDrawable 对象获得图片的图片,然后指定这个AnimationDrawable 开始播放动画
Tip:使用此方法不会默认播放,必须要有事件触发才可播放动画,如上面的通过点击监听触发动画的播放
那么如何使用图片自动播放呢?我们可以联想一下,ProgressBar 是不是默认的时候就会转,那就是那个圆形的进度条,是的。我们可以对它进行改造合它也可以自动播放,在Values 文件下新建一个styles 文件,编写如下代码 :
<? xml version="1.0" encoding="UTF-8" ?>
< resources >
< style name ="animStyle" parent ="@android:style/Widget.ProgressBar.Large" >
< item name ="android:indeterminateDrawable" > @anim/test </ item >
</ style >
</ resources >
上面样式文件自Widget.ProgressBar.Large 为其设置动画文件,我们在XML中就可以通过设置它的样式使其为我们工作
< ProgressBar android:id ="@+id/ProgressBar01" style ="@style/animStyle"
android:layout_width ="128px" android:layout_height ="128px" ></ ProgressBar >
转载于:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=32438