Animation动画

Android提供了两种动画
一、Tween动画也就相当于补间动画

透明度变化
alpha

1 AlphaAnimation aa = new AlphaAnimation(0.0f,1.0f);//不透明到完全透明
2 aa.setDuration(2000);// 持续时间
3 imageView.startAnimation(aa);// 作用到对象上

旋转动画
rotate

1 RotateAnimation ra = new RotateAnimation(0,90);//从0-90度
2 // 旋转中心的设置
3 RotateAnimation ra = new RotateAnimation(0,90,0.5f,0.5f);
4 ra.setDuration(2000);// 持续时间
5 imageView.startAnimation(ra);// 作用到对象上

缩放动画
scale

1 // x 0-1 y 0-1
2 ScaleAnimation sa = new ScaleAnimation(0.0f,1.0f,0.0f,1.0f);
3 sa.setDuration(2000);// 持续时间
4 imageView.startAnimation(sa);// 作用到对象上


偏移动画

1 // 偏移前x -后x   偏移前y -后y
2 TranslateAnimation ta = new TranslateAnimation(02000200);
3 
4 ta.setDuration(2000);// 持续时间
5 imageView.startAnimation(ta);// 作用到对象上

通常动画以配置文件形式使用
新建anim文件夹

 1 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
 2 android:fromAlpha="0.0" 开始透明度
 3 android:toAlpha="1.0" 结束透明度
 4 android:duration="2000" 执行时间
 5 android:repeatCount="2" 次数
 6 android:repeatMode="restart" 重复的模式
 7 >
 8 </alpha>
 9 
10 // 代码中引用
11 Animation aa = AnimationUtils.loadAnimation(this,R.anim.alpha);
12 imageView.startAnimation(aa);// 作用到对象上
13 
14 
15 <rotate xmlns:android="http://schemas.android.com/apk/res/android"
16 android:fromDegrees="0" 开始度数
17 android:toDegrees="90" 结束度数
18 android:pivotX="50%" 旋转中心
19 android:pivotY="50%"
20 >
21 </rotate>
22 
23 
24 <scale xmlns:android="http://schemas.android.com/apk/res/android"
25 android:duration="2000" 时间
26 android:fromXScale="0.0" 开始大小
27 android:toXScale="2.0" 结束时大小
28 android:fromYScale="0.0"
29 android:toXScale="2.0"
30 android:repeatCount="1" 执行次数
31 android:repeatMode="reverse" 按反方向执行
32 >
33 </scale>
34 
35 
36 <translate xmlns:android="http://schemas.android.com/apk/res/android"
37 android:duration="2000" 时间
38 android:fromXDelta="0" 平移开始位置
39 android:toXDelta="100" 
40 android:fromYDetal="0"
41 android:toYDelta="100"
42 android:startOffset="1000" 延迟执行
43 >
44 </translate>

动画的组合也统一通过代码或配置文件实现

 1 AnimationSet set = new AnimationSet(false);// 是否加速器
 2 set.addAnimation(aa);
 3 set.addAnimation(ta);
 4 imageView.statAnimation(set);
 5 
 6 
 7 配置文件实现代码集合
 8 <set xmlns:android="http://schemas.android.com/apk/res/android"
 9 >
10 <alpha
11 android:fromAlpha="0.0" 开始透明度
12 android:toAlpha="1.0" 结束透明度
13 android:duration="2000" 执行时间
14 android:repeatCount="2" 次数
15 android:repeatMode="restart" 重复的模式
16 />
17 <translate
18 android:duration="2000" 时间
19 android:fromXDelta="0" 平移开始位置
20 android:toXDelta="100" 
21 android:fromYDetal="0"
22 android:toYDelta="100"
23 android:startOffset="1000" 延迟执行
24 />
25 </set>
26 
27 // 代码中引用
28 Animation aa = AnimationUtils.loadAnimation(this,R.anim.set);
29 imageView.startAnimation(aa);

第二种动画:帧动画
Frame animation

 1 在drawable目录下
 2 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
 3 android:oneshot="false"  false 表多次执行
 4 >
 5 
 6 <item android:drawable="图片地址1"
 7 android:duration="200" 
 8 />
 9 <item android:drawable="图片地址2"
10 android:duration="200" 
11 />
12 <item android:drawable="图片地址3"
13 android:duration="200" 
14 />
15 <item android:drawable="图片地址4"
16 android:duration="200" 
17 />
18 
19 </animation-list>
20 
21 
22 imageView.setBackgroundResource(R.drawable.list);
23 AnimationDrawable ad = (AnimationDrawable)imageView.getBackground();
24 ad.start();

 

posted @ 2013-06-27 09:40  轻云沉峰  阅读(2133)  评论(0编辑  收藏  举报