-
Animations基本概念:
Animations提供了一系列的动画效果,这些效果可以应用在绝大多数的控件;
-
Animations的分类:
-
TweeenedAnimations
-
该类Animations提供了旋转、移动、伸展和淡出等等效果;
-
Frame-by-FrameAnimations
-
该类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示;
-
TweenedAnimations的第一中方法:
-
创建一个AnimationsSet对象
-
根据需要创建相应的Animation对象;
-
根据软件动画需求,为Animation对象设置相应的数据;
-
将Animation对象添加到AnimationSet对象当中;
-
使用控件对象开始执行AnimationSet
-
创建一个简单的rotate(旋转动画)动画效果代码(其他类型的动画效果其实也是跟这一样的过程,只是创建Animation时使用的是不一样的Animation而已):
AnimationSetanimationSet = new AnimationSet(true);
RotateAnimationrotateAnimation = new RotateAnimatin(0,360,
Animation.RELATIVE_TO_PARENT,//表示这个动画效果的x轴方向是相//对其父控件
1f,//表示轴心的x坐标跟整个父控件的最大x坐标一样大(1*100)%
Animation.RELATIVE_TO_PARENT,
0f,);//表示轴心的y坐标占父控件的最大y坐标的(0*100)%
rotateAnimation.setDuration(1000);//设置动画持续时间
animationSet.addAnimation(rotateAnimation);
imageView.startAnimation(animationSet);
注:RELATIVE_TO_PARENT表示这个动画效果是相对其父控件
RELATIVE_TO_SELF表示这个动画效果是相对自身
-
TweenAnimations的通用属性
-
setDuration(longdurationMills)
-
设置动画持续时间(单位:毫秒);
-
setFillAfter(booleanfillAfter);
-
如果fillAfter的值为true;则动画执行后,控件将停留在执行结束的状态;
-
setFillBefore(booleanfillBefore);
-
如果fillBefore的值为true;则动画执行后,控件将回到动画执行前的状态;
-
setStartOffSet(longstartOffSet);
-
设置动画执行之前的等待时间;
-
setRepeatCount(intrepeatCount);
-
设置动画重复执行的次数
注:如果这些函数是用AnimationSet的对象调用的,则表示这个AnimationSet集合里的所有Animation对象都是这样一个效果;如果只是用Animation的对象调用,则只对该Animation对象生效;
5.Animation的第二种使用方法:
(1)在res文件夹下面新建一个名为anim的文件夹
(2)创建xml文件,并首先加入set标签
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
</set>
(3)在该标签当中加入rotate,alpha,scale,translate标签
<alpha
android:formAlpha="0.1"
android:toAlpha="1.0"
android:duration="1000" />
(4)在代码当中使用AnimationUtils装载xml文件,并生成Animation对象
Animation ani = AnimationUtils.loadAnimation(AniActivity.this,R.anim.alpha);
imgAni.startAnimation(ani);