Android动画之View动画

 

看够了文字博客?不如来尝试看一下视频博客吧

配套视频地址:https://mp.weixin.qq.com/s/KpcwT-RH8kMIhWcuEcYDZw

简介

View动画的作用对象是view,支持的动画效果一般包括平移、缩放、旋转、透明度等四种。它属于渐进式动画,并且支持自定义。但是它执行的动画只是视觉上的改变,真正的属性及位置还在原先的地方。

创建view动画可以通过TranslateAnimation、ScaleAnimation、RotateAnimation、AlphaAnimation等四种Animation的子类创建,也可以在xml中通过等标签来定义来定义,一般建议使用xml来定义。

对应关系:

名称

标签

平移动画

TranslateAnimation

缩放动画

ScaleAnimation

旋转动画

RotateAnimation

透明度动画

AlphaAnimation

集合动画

AnimationSet

动画的创建

常用共用属性

属性

作用

取值

duration

动画的持续时间

float

fillAfter

动画结束后是否保留结束状态

boolean

interpolator

插值器

资源

shareInterpolator

集合中的动画是否共享同一个插值器

boolean

startOffset

动画延迟播放时间

float

repeatCount

动画重复次数,数字为负数时为无限循环

float

repeatMode

重复的类型,reverse倒放,restart从新播放

reverse/restart

 

平移动画

作用:使View在水平和竖直方向完成平移

标签:

类:Traslate

属性

含义

值类型

fromXDelta

X轴的起始值

float

toXDelta

X轴的结束值

float

fromYDelta

Y轴的起始值

float

toYDelta

Y轴的结束值

float

例子:





缩放动画

作用:使View具有放大或者缩小的动画效果

标签:

类:ScaleAnimation

属性

含义

值类型

fromXScale

水平方向缩放的起始值

float

toXScale

水平方向缩放的结束值

float

fromYScale

竖直方向缩放的起始值

float

toYScale

数值方向缩放的结束值

float

pivotX

缩放的x轴轴点的坐标

float

PivotY

缩放的y轴轴点的坐标

float

例子:




旋转动画

作用:使view具有旋转的动画效果

标签:

类:RotateAnimation

属性

含义

值类型

fromDegrees

旋转开始的角度

float

toDegrees

旋转结束的角度

float

pivotX

旋转的x轴轴点的坐标

float

PivotY

旋转的y轴轴点的坐标

float

例子:




透明度动画

作用:使View改变透明度

标签:

类:AlphaAnimation

属性

含义

值类型

fromAlpha

透明度的起始值,取值范围0-1

float

toAlpha

透明度的结束值,取值范围0-1

float

例子:




动画集合

作用:动画的集合,其中可以包含多个动画,也可以包括若干个动画集合

标签:

类:AnimationSet

例子:




    

    

    

    


动画的使用

xml中定义的动画

  1. 使用AnimationUtils加载动画
Animation animation= AnimationUtils.loadAnimation(this,R.anim.anima_name);
  1. 需要使用动画的view调用startAnimation方法开启动画
view.startAnimation(animation);

 

动画状态的监听

通过对动画设置setAnimationListener对动画设置监听

onAnimationStart:动画开启时
onAnimationEnd:动画结束时
setAnimationListener:动画重复时
animation.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {

    }

    @Override
    public void onAnimationEnd(Animation animation) {

    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }
});


加入我的行列

微信公众号


QQ群:



 

 

你可能感兴趣的:(基础知识整理)