美文网首页随笔
Android动画相关

Android动画相关

作者: 王元 | 来源:发表于2016-07-03 17:04 被阅读13次

    Animation 动画

    AlphaAnimation 渐变透明度

    RotateAnimation 画面旋转

    ScaleAnimation 渐变尺寸缩放

    TranslateAnimation 位置移动

    AnimationSet 动画集

    1,帧动画(Frame Animation,也称Drawable Animation)

    animation_list.xml

    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
     android:oneshot="false">
     <item android:drawable="@drawable/bg1" android:duration="150"></item>  
     <item android:drawable="@drawable/bg2" android:duration="150"></item>  
     <item android:drawable="@drawable/bg3" android:duration="150"></item>  
     <item android:drawable="@drawable/bg4" android:duration="150"></item>  
     <item android:drawable="@drawable/bg5" android:duration="150"></item>  
     <item android:drawable="@drawable/bg6" android:duration="150"></item>  
     <item android:drawable="@drawable/bg7" android:duration="150"></item>  
    </animation-list>
    

    代码中给ImageView设置动画,然后启动动画

    mIvLoadinAnim.setImageResource(R.drawable.animation_white_list);
    AnimationDrawable animDrawable = (AnimationDrawable) mIvLoadinAnim.getDrawable();
    animDrawable.start();
    

    停止动画

    animDrawable.stop();
    

    2,补间动画(Tween Animation)

    该类animations提供了旋转(Rotate),移动(translate),缩放(scale)和渐变(alpha)效果

    3,属性动画(Property Animation)

    属性动画,一般情况下都是写在res/anim包下。为了在描述方便所有的动画都名称都是loading_anim.xml
    缩放动画

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
    android:interpolator="@android:anim/decelerate_interpolator"
    android:fillAfter="false"
    android:fromXScale="1"
    android:fromYScale="1"
    android:toXScale="1.8"
    android:toYScale="1.8"
    android:pivotX="50.0%"
    android:pivotY="50.0%"
    android:duration="120"
    android:repeatCount="1"
    android:repeatMode="reverse"/>
    </set>
    

    移动动画

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <translate
    android:duration="500"
    android:toYDelta="100%p" />
    
    </set>
    

    渐变动画

    <?xml version="1.0" encoding="utf-8"?>
    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="400"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />
    

    旋转动画

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <rotate
       android:fromDegrees="0.0"
       android:toDegrees="360.0"
       android:pivotX="50%"
       android:pivotY="50%"
       android:duration="1000"
       android:repeatMode="restart"
       android:repeatCount="infinite"/>
    </set>
    

    代码中调用的方法(启动方法)

    mLoadingAnimation = AnimationUtils.loadAnimation(context, R.anim.loading_anim);
    mLoadingAnimation.setInterpolator(new LinearInterpolator());// 不停顿(设置播放的速度,匀速,加速,减速)
    mLoadingAnimation.setFillAfter(true);
    mIvLoadinAnim.startAnimation(mLoadingAnimation);
    

    停止动画方法:

    animDrawable.cancle();
    

    讲的还不够详细,后期会慢慢补充(有好的意见或者建议,欢迎留言)

    相关文章

      网友评论

        本文标题:Android动画相关

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