Android中如何在XML中定义动画

在XML中定义动画有四种方式,分别为:

    <alpha/>

    <scale/>

    <translate/>

    <rotate/>


下面具体来介绍每个标签里面的属性

<alpha>    控制动画的透明度

fromAlpha: 动画起始时的透明度

toAlpha:动画结束时的透明度

    说明:0.0 表示完全透明,1.0表示完全不透明(以上值取0.0-1.0之间的float数据类型的数字

duration:动画持续的时间

eg:

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


<scale> 尺寸伸缩动画效果

interpolator:指定一个动画的插入器

    有三种动画插入器:accelerate_decelerate_interpolator  加速-减速 动画插入器

    accelerate_interpolator        加速-动画插入器

    decelerate_interpolator        减速- 动画插入器

    其他的属于特定的动画效果

fromXScale:动画起始时 X坐标上的伸缩尺寸

toXScale:动画结束时 X坐标上的伸缩尺寸

fromYScale:动画起始时Y坐标上的伸缩尺寸

toYScale:动画结束时Y坐标上的伸缩尺寸

    以上四种属性值:0.0表示收缩到没有,1.0表示正常无伸缩,值小于1.0表示收缩,值大于1.0表示放大

pivotX:动画相对于物件的X坐标的开始位置

pivotY:动画相对于物件的Y坐标的开始位置

    说明:以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

duration:动画持续多长时间(毫秒ms

fillAfter:当设置为true时,该动画转化在动画结束后被应用

eg:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="0.0"
        android:toXScale="1.4"
        android:fromYScale="0.0"
        android:toYScale="1.4"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="false"
        android:duration="700" />
</set>


<translate> 位置转移动画效果

fromXDelta:动画起始时 X坐标上的位置

toXDelta:动画结束时 X坐标上的位置

fromYDelta:动画起始时 Y坐标上的位置

toYDelta:动画结束时 Y坐标上的位置

    说明:没有指定fromXType, toXType, fromYType, toYType的时候,默认是以自己为相对参照物

duration:动画持续多长时间(毫秒ms

eg:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="30"
        android:toXDelta="-80"
        android:fromYDelta="30"
        android:toYDelta="300"
        android:duration="2000"
    />
</set>


<rotate>旋转动画效果

interpolator:指定一个动画的插入器

    有三种动画插入器:accelerate_decelerate_interpolator  加速-减速 动画插入器

    accelerate_interpolator        加速-动画插入器

    decelerate_interpolator        减速- 动画插入器

    其他的属于特定的动画效果

fromDegrees:动画起始时物件的角度

toDegrees:动画结束时物件旋转的角度 可以大于360度

    说明:当角度为负数——表示逆时针旋转

        当角度为正数——表示顺时针旋转

        (负数from——to正数:顺时针旋转)
        (负数from——to负数:逆时针旋转)
        (正数from——to正数:顺时针旋转)
        (正数from——to负数:逆时针旋转)

pivotX:动画相对于物件的X坐标的开始位置

pivotY:动画相对于物件的Y坐标的开始位置

    说明:以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置

duration:动画持续多长时间(毫秒ms)

eg:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate  android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromDegrees="0"
        android:toDegrees="+350"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="3000" />
</set>


Java调用:

Animation animation=AnimationUtils.loadAnimation(HelloActivity.this,R.anim.buttonain);
findViewById(R.id.listView).startAnimation(animation);


你可能感兴趣的:(动画)