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(0,200,0,200); 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();