Android中如何在XML中定義動畫

在XML中定義動畫有四種方式,分別爲:java

    <alpha/>android

    <scale/>動畫

    <translate/>this

    <rotate/>spa


下面具體來介紹每一個標籤裏面的屬性code

<alpha>    控制動畫的透明度xml

fromAlpha: 動畫起始時的透明度utf-8

toAlpha:動畫結束時的透明度animation

    說明:0.0 表示徹底透明,1.0表示徹底不透明(以上值取0.0-1.0之間的float數據類型的數字it

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);
相關文章
相關標籤/搜索