补间动画实现多种酷炫效果

一次性介绍补间动画

/**
 1. 一次执行所有的动画效果
 2. @param view
 */
public void executeAllAnimations(View view){
    /*
     *  创建一个AnimationSet,它能够同时执行多个动画效果
     *  构造方法的入参如果是“true”,则代表使用默认的interpolator,如果是“false”则代表使用自定义interpolator
     */
    AnimationSet animationSet = new AnimationSet(true);
 
    /*
     *  创建一个半透明效果的动画对象,效果从完全透明到完全不透明
     */
    AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);
 
    /*
     *  设置动画的持续时间
     */
    alphaAnimation.setDuration(3000);
 
    /*
     *  创建一个旋转动画对象
     *  入参列表含义如下:
     *  1.fromDegrees:从哪个角度开始旋转
     *  2.toDegrees:旋转到哪个角度结束
     *  3.pivotXType:旋转所围绕的圆心的x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标
     *  4.pivotXValue:旋转所围绕的圆心的x轴坐标,0.5f表明是以自身这个控件的一半长度为x轴
     *  5.pivotYType:y轴坐标的类型
     *  6.pivotYValue:y轴坐标
     */
    RotateAnimation rotateAnimation = new RotateAnimation(0,360, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
 
    /*
     *  设置动画的持续时间
     */
    rotateAnimation.setDuration(3000);
 
    /*
     *  创建一个缩放效果的动画
     *  入参列表含义如下:
     *  fromX:x轴的初始值
     *  toX:x轴缩放后的值
     *  fromY:y轴的初始值
     *  toY:y轴缩放后的值
     *  pivotXType:x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标
     *  pivotXValue:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
     *  pivotYType:y轴坐标的类型
     *  pivotYValue:轴的值,0.5f表明是以自身这个控件的一半长度为y轴
     */
    ScaleAnimation scaleAnimation = new ScaleAnimation(0,0.1f,0,0.1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
 
    /*
     *  设置动画的持续时间
     */
    scaleAnimation.setDuration(3000);
 
 
    /*
     *  创建一个移动动画效果
     *  入参的含义如下:
     *  fromXType:移动前的x轴坐标的类型
     *  fromXValue:移动前的x轴的坐标
     *  toXType:移动后的x轴的坐标的类型
     *  toXValue:移动后的x轴的坐标
     *  fromYType:移动前的y轴的坐标的类型
     *  fromYValue:移动前的y轴的坐标
     *  toYType:移动后的y轴的坐标的类型
     *  toYValue:移动后的y轴的坐标
     */
    TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,0.5f);
 
    /*
     *  设置动画的持续时间
     */
    translateAnimation.setDuration(3000);
 
    /*
     *  将四种动画效果放入同一个AnimationSet中
     */
    animationSet.addAnimation(alphaAnimation);
    animationSet.addAnimation(rotateAnimation);
    animationSet.addAnimation(scaleAnimation);
    animationSet.addAnimation(translateAnimation);
 
    /*
     *  同时执行多个动画效果
     */
    view.startAnimation(animationSet);
}
  1. 转载于
    添加链接描述

猜你喜欢

转载自blog.csdn.net/Java_0856/article/details/109104042