【功能说明】该方法用于为帧动画对象添加动画帧。该方法主要用于动态修改帧动画内容的场合,可以根据需要增加一些动画帧。
【基本语法】public void addFrame (Drawable frame, int duration)
参数说明
frame:动画帧的Drawable对象。
duration:动画帧的持续时间,单位为毫秒。
【实例演示】下面通过代码来演示如何实现一个简单的帧动画。
public class firstActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { //重载onCreate方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ImageView image=(ImageView)findViewById(R.id.imageView1); //ImageView对象
Button btn1=(Button)findViewById(R.id.button1); //按钮对象
Button btn2=(Button)findViewById(R.id.button2);
final AnimationDrawable ad=(AnimationDrawable)image.getBackground(); //声明帧动画对象
btn1.setOnClickListener(new View.OnClickListener() { //设置监听器
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ad.addFrame(getResources().getDrawable(R.drawable.p0), 100); //添加帧
ad.addFrame(getResources().getDrawable(R.drawable.p1), 100); //添加帧
ad.addFrame(getResources().getDrawable(R.drawable.p2), 100); //添加帧
ad.addFrame(getResources().getDrawable(R.drawable.p3), 100); //添加帧
ad.addFrame(getResources().getDrawable(R.drawable.p4), 100); //添加帧
ad.start(); //开始动画
}
});
btn2.setOnClickListener(new View.OnClickListener() { //设置监听器
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ad.stop(); //停止动画
}
});
}
}
在这段代码中,首先声明了帧动画对象。然后,在第一个按钮监听器中使用addFrame方法添加了动画帧,之后直接调用start方法来开 始动画执行,在第二个按钮监听器中直接调用stop方法来停止动画执行。这样,读者执行这段代码,当点击"执行动画"按钮时,将看到动画效果执行了两遍。 这是因为我们增加的动画帧与原有的动画帧相同,相当于播放了两次。