============================
原创,转载请指明出处。
要实现一个反复移动的动画,其实是在一个View上施加一个TranslationAnimation,设置这个Animation的时间和模式即可。
具体的代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42public class firstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//对这个ImageView对象施加位移动画
final ImageView image=(ImageView)findViewById(R.id.imageView1);
//启动动画的按钮
Button btn1=(Button)findViewById(R.id.button1);
Button btn2=(Button)findViewById(R.id.button2);
//创建位移动画,从x轴的0坐标移动到x轴的300坐标,从y轴的0坐标移动到y轴的300坐标
final Animation translateAnimation=new TranslateAnimation(0,300,0,300);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//设置动画持续时间为3秒
translateAnimation.setDuration(3000);
//设置重复次数,可随意,这里是想无限重复
translateAnimation.setRepeatCount(Integer.MAX_VALUE);
//设置动画的重复模式,即反方向运动。当从(0,0)运动到(300,300)后,再从(300,300)运动到(0,0),如此反复
translateAnimation.setRepeatMode(Animation.REVERSE);
//为ImageView设置动画效果
image.setAnimation(translateAnimation);
//启动位移动画
translateAnimation.startNow();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//取消动画执行
translateAnimation.cancel();
}
});
}
}