天天看点

Android动画-View动画

View动画作用对象是View,支持4种动画效果(平移动画、缩放动画、旋转动画、透明度动画),除了这4种帧动画也属于View动画。

View动画的4种变换效果对应着Animation的4个子类:TranslateAnimation、ScaleAnimation、RotateAnimation和AlphaAnimation。这4种动画既可以通过XML来定义,也可以通过代码来动态创建。

创建XML文件,这个文件路径为:res/anim/xxxxx.xml。例如:

<set xmins:android=""
android:interploator=""
android:shareInterpolator="true|false">
<!--透明度动画-->
    <alpha
        android:fromAlpha="1"
        android:toAlpha="0.5"/>
<!--旋转动画-->
    <rotate
        android:fromDegrees="0"
        android:toDegrees="-180"/>
<!--缩放动画-->
    <scale
        android:fromXScale="0.5"
        android:fromYScale="0.5"
        android:toXScale="1"
        android:toYScale="1" />
<!--位移动画-->
    <translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="200"
        android:toYDelta="200" />
</set>
           

set标签对应AnimationSet类,它可以包含若干个动画,并且它的内容也是可以嵌套其他动画集合的,它两个属性含义如下:

android:interpolator表示动画集合所采用的插值器,定义动画播放时的速度(非匀速播放,匀速播放)这个属性可以不指定,默认为@android:anim/accelerate_decerate_interpolator,即加速减速插值器。

android:shareInterpolator

表示集合中的动画是否和集合共享同一个插值器,如果集合不指定,那么子动画就需要单独指定所需插值器。

translate标签是平移动画,对应TranalateAnimation,各属性含义如下:

fromXDelta-表示x的起始值。

toXDelta-表示x的结束值。

fromYDelta-表示y的起始值

toYDelta-表示y的结束值。

scale标签表示缩放动画,对应ScaleAnimation类,各属性含义如下:

fromXScale-水平方向缩放起始值。

toXScale-水平方向缩放结束值。

fromYScale-竖直方向起始值。

toYScale-竖直方向结束值。

pivotX-缩放的轴点的x坐标,它会影响缩放效果。

pivotY-缩放的轴点的y坐标,它会影响缩放效果。

rotate标签表示旋转动画,对应RotateAnimation类,各属性含义如下:

fromDegrees-旋转开始的角度。

toDegrees-旋转结束的角度。

pivotX-旋转轴点的x坐标。

pivotY-旋转轴点的y坐标。

alpha标签表示透明度动画,对应AlphaAnimation类,各属性含义如下:

fromAlpha-表示透明度起始值。

toAlpha-表示透明度结束值。

View动画也有一些属性,如下:

duration-动画持续时间

fillAfter-动画结束后View是否停留在结束位置。

应用XML里面动画:

Button btn = (Button)findViewById(R.id.btn);
Animation animatoion = AnimionUtils.loadAnimation(this,R.anim.xxxx.xml);
btn.startAnimation(animation);
           

如果要在代码中应用动画,如下:

AlphaAnimation alphaAnimation = new AlphaAnimation(,);
alphaAnimation.setDuration();
btn.startAnimation(alphaAnimation);