Android动画笔记

视图动画

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/透明度动画
public void btnAlpha(View view) {
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(1000);//播放时长
view.startAnimation(aa);
}
//旋转动画
public void btnRotate(View view) {
RotateAnimation ra = new RotateAnimation(0, 360, 0, 0);
//旋转的开始角度,旋转的结束角度,x坐标,y坐标,(0,0)在左上角
ra.setDuration(1000);
view.startAnimation(ra);
}
public void btnRotateSelf(View view) {
RotateAnimation ra = new RotateAnimation(0, 360,
RotateAnimation.RELATIVE_TO_SELF, 0.5F,
RotateAnimation.RELATIVE_TO_SELF, 0.5F);//0.5F代表偏移值
ra.setDuration(1000);
view.startAnimation(ra);
}
//位移动画
public void btnTranslate(View view) {
TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 300);//这里意思是从(0,0)位移到(200,300)
ta.setDuration(1000);
view.startAnimation(ta);
}
//缩放动画
public void btnScale(View view) {
ScaleAnimation sa = new ScaleAnimation(0, 2, 0, 2);//这里意思是从(0,0)拉伸到(2,2)
sa.setDuration(1000);
view.startAnimation(sa);
}
public void btnScaleSelf(View view) {
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1,
Animation.RELATIVE_TO_SELF, 0.5F,
Animation.RELATIVE_TO_SELF, 0.5F);
sa.setDuration(1000);
view.startAnimation(sa);
}
//多个动画合并
public void btnSet(View view) {
AnimationSet as = new AnimationSet(true);
as.setDuration(1000);
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(1000);
as.addAnimation(aa);
TranslateAnimation ta = new TranslateAnimation(0, 100, 0, 200);
ta.setDuration(1000);
as.addAnimation(ta);
view.startAnimation(as);
}

相对于的监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void btnAlpha(View view) {
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(1000);//播放时长
aa.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Log.e("动画", "开始" );
}
@Override
public void onAnimationEnd(Animation animation) {
Log.e("动画", "结束" );
}
@Override
public void onAnimationRepeat(Animation animation) {
Log.e("动画", "重复" );
}
});
view.startAnimation(aa);
}

属性动画