美文网首页
Android之基础动画

Android之基础动画

作者: 破荒之恋 | 来源:发表于2016-12-26 11:35 被阅读27次

    Android基础动画

    • Tween Animation 变换动画
    • Frame Animation 帧动画
    • Layout Animation 布局动画
    • Property Animation 属性动画

    Tween Animation 变换动画

    • Alpha:渐变透明度动画
    • Scale:渐变尺寸缩放动画
    • Translate:位置移动动画
    • Rotate :旋转动画

    共同属性

    • Duration:动画持续时间
    • fillAfter:设置为true,动画转化在动画结束后被应用
      fillBefore:设置为true,动画转化在动画开始前被应用
    • interPolator:动画插入器(加速、减速插入器)
    • repeatMode:动画重复次数
    • repateMode:顺序重复/倒序重复
    • startOffset:动画之间的时间间隔

    Animation实现方式

    • 配置文件(/res/anim)--alpha、scale、translate、rotate
    • Java代码实现-----AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

    Example(Java代码创建)

    AlphaAnimation alpha=new AlphaAnimation(0.1f,1.0f);
    //设置动画时间为5秒
    alpha.setDuration(5000);
    //开始播放
    img.startAnimation(alpha);
    

    Example(加载布局文件)

    Animation scale=AnimationUtils.loadAnimation(MainActivity.this,R.anim.scale_anim);
    //开始动画
    img.startAnimation(scale);
    

    AlphaAnimation (透明度动画)

    • fromAlpha:动画起始时透明度
    • toAlpha:动画终止时的透明度

    0.0 表示完全透明
    1.0 表示完全不透明

    ScaleAnimation(缩放动画)

    • fromX,toY分别是起始和结束时X坐标上的伸缩尺寸
    • fromY,toY分别是起始和结束时Y坐标上的伸缩尺寸
    • pivotX,pivotY分别为伸缩动画相对于x,y坐标开始的位置

    TranslateAnimation(位移动画)

    • fromXDelta,fromYDelta分别是起始时X,Y的坐标
    • toXDelta,toYDelta分别是X,Y的坐标

    RotateAnimation(旋转动画)

    • fromDegress 起始的角度
    • toDegress 终止的角度
    • pivotX,pivotY分别为旋转动画相对于x,y的坐标开始位置

    组合动画

    • 续播一 第一个动画A结束时监听AnimationListener ,在onAnimationEnd触发时开始动画B
    • 续播二 写一个动画集AnimationSet,在其中定义动画A和B,为动画B设置startOffset,其值就是前一个动画播放的时间

    循环闪烁

    • 利用Animation的setRepeatCount、setRepeatMode来实现动画循环。
    AlphaAnimation alpha=new AlphaAnimation(0.1f,1.0f);
    alpha.setDuration(100);
    alpha.setRepeatCount(10);
    //倒序重复:REVERSE  正序重复RESTART
    alpha.setRepeatMode(Animation.REVERSE);
    img.startAnimation(alpha);
    

    Activity切换动画:

    • 使用overridePendingTransition方法
    • 参数:第二个activity进入动画 、第一个activity退出时的动画

    布局动画

    • LayoutAnimation
      为ViewGroup添加动画、使用LayoutAnimationController

    LayoutAnimationController lay=new LayoutAnimationController();
    lay.setOrder(LayoutAnimationController.ORDER_RANDOM);;
    listview.setLayoutAnimation(lay);
    listview.startLayoutAnimation();

    FrameAnimation(逐帧动画)

    使用animation_list标签来分组一个item的标签集合,定义要显示的图片。指定显示他的时间

    相关文章

      网友评论

          本文标题:Android之基础动画

          本文链接:https://www.haomeiwen.com/subject/asdjvttx.html