补间动画,就是开发者只需要指定动画的开始,动画的结束的“关键帧”,而动画变化的“中间帧”由系统计算,并且补齐。这就是补间动画。
补间动画共分为四类:
AlphaAnimation(透明动画),ScaleAnimation(缩放动画),TranslateAnimation(位移动画),RoateAnimation(旋转动画)
我们依次学习。
a:透明动画
public void AlphaAnimation(View v) { //0:代表的是全透明,1代表的是全不透明 aa = new AlphaAnimation(0, 1); //持续时间2s aa.setDuration(2000); //开始播放动画 iView.startAnimation(aa); }
透明动画只需要设置开始的透明度,和结束的透明度,以及设置的动画延迟时间就行。
b:缩放动画
public void ScaleAnimation(View v) { /* 1:代表x坐标的初始值 = 1*iView的宽 * 3:代表x坐标的缩放位置 = 3*iView的宽 * 默认的缩放原点是左上角 * */ //sa = new ScaleAnimation(1, 3, 1, 3); //iView.getWidth()/2, iView.getHeight()/2: 可以修改缩放的原点,是以ImageView的中心作为缩放点 //sa = new ScaleAnimation(0, 3, 0, 3, iView.getWidth()/2, iView.getHeight()/2); //Animation.RELATIVE_TO_SELF, 1:代表缩放点的x坐标 = iView的真实x+1*iView的宽度 //Animation.RELATIVE_TO_SELF, 1:代表缩放点的y坐标 = iView的真实y+1*iView的高度 sa = new ScaleAnimation(0, 2, 0, 2, Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1); //设置延迟时间 sa.setDuration(2000); iView.startAnimation(sa); }
缩放动画有3个重构方法,每个方法的参数都是不一样的,建立大家试着设置几个值试试,就明白其中的含义了。
c:位移动画
public void TranslateAnimation(View v) { //0:表示x坐标的开始位置 = iView的真实x + 0 //ta = new TranslateAnimation(0, 100, 0, 100); //Animation.RELATIVE_TO_SELF, 1:表示x的开始坐标 = iView的真实x + iv宽*1 ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1); ta.setDuration(2000); iView.startAnimation(ta); }
位移动画有两种构造方法,具体还需自己尝试尝试
d:旋转动画
public void RotateAnimation(View v) { //旋转开始角度和结束角度 //ra = new RotateAnimation(0, -15); //ra = new RotateAnimation(20, 360, iView.getWidth()/2, iView.getHeight()/2); ra = new RotateAnimation(0, 90, Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 1); ra.setDuration(2000); iView.startAnimation(ra); }总结:补间动画只需要记住三个重要元素即可, 开始坐标,结束坐标,以及动画播放时间就可以了。
版权声明:本文为博主原创文章,未经博主允许不得转载。