美文网首页
视图动画

视图动画

作者: 王家二公主 | 来源:发表于2020-03-19 22:42 被阅读0次

    视图动画的种类:

    alpha:渐变透明动画效果

    scale 渐变尺寸伸缩

    translate:画面变换位置移动

    rorate:画面转移旋转动画

    set:定义动画集

    加载使用动画:Animation animation = AnimationUtils.loadAnimation(MyActivity.this,R.anim.XX)

    scale标签

    用于缩放动画,可以实现动态调整空间尺寸的效果

    android:fromXScale:动画的起始,空间在X轴方向上相对自身的缩放比列  1.0代表自身无变化  0.5代表缩小一倍

    android:toXScale:动画的结束,空间在X轴方向上相对自身的缩放比列

    android:fromYScale:动画的起始,空间在Y轴方向上相对自身的缩放比列  1.0代表自身无变化  0.5代表缩小一倍

    android:toYScale:动画的结束,空间在Y轴方向上相对自身的缩放比列

    android:pivotX:缩放起始点X轴坐标,可以是数值,百分数,百分数p三种样式,如50,50%,50%p  数值代表当前视图的左上角,即原始点出加上50px,如果是50%,则表示在当前控件的左上角加上自己宽度的50%,如果是50%p,则表示在当前控件的左上角加上父控件宽度的50%

    android:pivotY:缩放起始点Y轴坐标

    <scale xmlns:android="http://schemas.android.com/apk/res/android"

    android:fromXScale="1.0"

    android:fromYScale="2"

    android:toXScale="0.4"

    android:toYScale="0.6"

    android:duration = "700">

    </scale>

    Animation

    android:duration 动画完成时间

    android:fillAfter: true控件动画结束时,保存动画结束状态

    android:fillBefore: true控件动画结束时,还原动画初始状态

    android:fillEnable ,与android:fillBefore效果相同,都是在控件动画结束时,将还原到初始状态

    android:repeatCount  指定动画的重复次数,当为 infinite,表示无限循环

    android:repeatMode 用于设定重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示重放,并且必须与repeatCout配合使用

    android:interpolator 用于设定插值器,指定动画效果,比如弹跳效果等

    Alpha标签

    渐变透明动画效果

    android:fromAlpha 动画开始的透明度,值范围0.0到1.0  0.0是全透明 1.0是完全不透明

    android:toAlpha 动画开始的透明度,值范围0.0到1.0  0.0是全透明 1.0是完全不透明

    rotate标签

    画面转移旋转动画效果

    android:fromDegrees  动画开始旋转的角度位置,正值代表顺时针,负值代表逆时针

    android:toDegrees  动画结束旋转的角度位置,正值代表顺时针,负值代表逆时针

    android:pivotX旋转中心点X轴坐标,默认是坐标原点,可以是数值,百分数,百分数p三种样式,如50,50%,50%p  数值代表当前视图的左上角,即原始点出加上50px,如果是50%,则表示在当前控件的左上角加上自己宽度的50%,如果是50%p,则表示在当前控件的左上角加上父控件宽度的50%

    android:pivotY:旋转中心点Y轴坐标

    translate标签

    画面变换位置

    android:fromXDelta  起点X轴坐标,可以是数值,百分数,百分数p三种样式,如50,50%,50%p  数值代表当前视图的左上角,即原始点出加上50px,如果是50%,则表示在当前控件的左上角加上自己宽度的50%,如果是50%p,则表示在当前控件的左上角加上父控件宽度的50%

    android:fromYDelta:起点Y轴坐标

    android:toXDelta 终点X轴坐标

    android:toYDelta终点Y轴坐标

    set标签

    容器类标签,定义动画集

    <set xmlns:android="http://schemas.android.com/apk/res/android"

    android:duration="5000"

    android:fillAfter="true">

    <alpha

    android:fromAlpha="0.0"

    android:toAlpha="1.0"/>

    <scale

    android:fromYScale="0.0"

    android:fromXScale="0.0"

    android:toYScale="1.4"

    android:toXScale="1.4"

    android:pivotY="50%"

    android:pivotX="50%"/>

    <rotate

    android:fromDegrees="0"

    android:toDegrees="720"

    android:pivotX="50%"

    android:pivotY="50%"/>

    </set>

    视图代码的动画实现

    1、ScaleAnimation

    构造方法

    public ScaleAnimation(Context context, AttributeSet attrs) 

    public ScaleAnimation(float fromX, float toX, float fromY, float toY)

    public ScaleAnimation(float fromX, float toX, float fromY, float toY, float pivotX, float pivotY)

    public ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

    最后一个构造函数pivotXType参数取值有三个Animation.ABSOLUTE,具体数值,如50;Animation.RELATIVE_TO_PARENT ,相对于父容器,取值如50%p,Animation.RELATIVE_TO_SELF相对于自身,取值为50%

    2、AlphaAnimation

    3、RotateAnimation

    4、TranslateAnimation

    5、AnimationSet 

    public AnimationSet(Context context, AttributeSet attrs)

    public AnimationSet(boolean shareInterpolator) 

    shareInterpolator为true,用于在AnimationSet中定义一个插值器(interpolater),下面所以的动画都用这个插值器;为false时,下面的动画定义各自的插值器

    增加动画的方法:

    public void addAnimation(Animation a)

    6、Animation

    取消动画

    public void cancel()

    将动画重置到动画开始前状态

    public void reset()

    动画监听

    public void setAnimationListener(Animation.AnimationListener listener)

    void onAnimationStart(Animation var1);动画开始时

    void onAnimationEnd(Animation var1); 动画结束时

    void onAnimationRepeat(Animation var1);动画重复时


    相关文章

      网友评论

          本文标题:视图动画

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