掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
有兩種類型的動畫資源:

屬性動畫
在設(shè)定的時間內(nèi),通過修改與Animator類相關(guān)的對象的屬性值來創(chuàng)建一個動畫。
視圖動畫
有兩種類型的視圖動畫框架
補間動畫(Tween animation):通過執(zhí)行通過執(zhí)行一系列的與Animation類相關(guān)的單一圖片的轉(zhuǎn)換來創(chuàng)建動畫。
幀動畫(Frame animation):通過顯示與AnimationDrawable類的順序相關(guān)的圖片序列來創(chuàng)建動畫。
屬性動畫
動畫被定義在要修改的目標(biāo)對象屬性的XML中,如設(shè)定時間內(nèi)的背景色或alpha值。
文件位置(FILE LOCATION):
res/animator/filename.xml,文件名被用作資源ID。
被編譯的資源類型(COMPILED RSOURCE DATATYPE):
資源要指向ValueAnimator、ObjectAnimator或AnimatorSet類型
資源引用(RESOURCE REFERENCE):
在Java代碼中:R.animation.filename
在XML文件中:@[package:]animator/filename
語法(SYNTAX):
- android:ordering=["together" | "sequentially"]>
- android:propertyName="string"
- android:duration="int"
- android:valueFrom="float | int | color"
- android:valueTo="float | int | color"
- android:startOffset="int"
- android:repeatCount="int"
- android:repeatMode=["repeat" | "reverse"]
- android:valueType=["intType" | "floatType"]/>
- android:duration="int"
- android:valueFrom="float | int | color"
- android:valueTo="float | int | color"
- android:startOffset="int"
- android:repeatCount="int"
- android:repeatMode=["repeat" | "reverse"]
- android:valueType=["intType" | "floatType"]/>
- ...
這個文件必須有一個單一的跟元素:既可以是
元素(ELEMENTS):
能夠包含其他動畫元素的一個容器(
可以指定 屬性(ATTRIBUTES): android:ordering 關(guān)鍵屬性,它指定該集合中動畫的播放順序。 值 說明 sequentially 在本組集合中按順序播放動畫。 together(默認(rèn)) 同一時間播放本組集合中的動畫 在特定的設(shè)定時間內(nèi)一個對象的具體動畫屬性,代表了一個ObjectAnimator對象。 屬性(ATTRIBUTES): android:propertyName 字符串類型,必須的。通過這個名字來引用動畫的對象屬性。例如,可以給View對象指定“alpha”或“backgroundColor”屬性。ObjectAnimator元素沒有暴露target屬性,因此不能在XML聲明中把對象設(shè)置給動畫。必須通過調(diào)用loadAnimator()方法和setTarget()方法把動畫XML資源填充到包含這個屬性的目標(biāo)對象中。 android:valueTo 浮點類型、整型、或顏色值,必須的。它是動畫屬性的結(jié)束值。顏色是用六個十六進制數(shù)表示(如#333333)。 android:valueFrom 浮點類型、整型、或顏色值,它是動畫屬性的開始值,如果沒有指定,那么動畫會在用屬性的get方法獲取值的時刻開始。顏色是六位十六進制數(shù)表示(如#333333)。 android:duration 整數(shù)類型。以毫秒為單位,指定動畫時間,默認(rèn)是300毫秒。 android:startOffset 整數(shù)類型。在start()方法被調(diào)用之后,動畫延遲的毫秒數(shù)。 android:repeatCount 整數(shù)類型。指定動畫的重復(fù)次數(shù)。設(shè)置為“-1”,說明要無限次重復(fù),或指定一個正整數(shù)。如,設(shè)定為1,說明動畫***次運行之后,還要重復(fù)一次,因此動畫要播放兩次。默認(rèn)值是0,意味著不重復(fù)。 android:repeatMode 正整數(shù)。指定在動畫到達結(jié)尾時的行為方式。只有android:repeatCount被設(shè)置為正整數(shù)或“-1”時,這個屬性才有效果。如果設(shè)置為“reverse”,那么每次重復(fù)時會逆向播放動畫,如果設(shè)置為“repeat”,那么每次重復(fù)時,會從動畫的開頭來播放動畫。 android:valueType 關(guān)鍵屬性。如果值是顏色值,那么不用指定這個屬性。動畫框架會自動處理顏色值。 值 說明 intType 指定動畫的值是整數(shù) floatType(默認(rèn)) 指定動畫的值是浮點數(shù) 在設(shè)定時間內(nèi)的動畫。代表了一個ValueAnimator對象。 屬性(ATTRIBUTES): android:valueTo 浮點型、整型或顏色值,必須的。它是動畫結(jié)束的的值。顏色值用六位十六進制數(shù)來代表(如,#333333) android:valueFrom 浮點型、整型或顏色值,必須的。它是動畫開始的值。顏色值用六位十六進制數(shù)來代表(如,#333333) android:duration 整數(shù)。以毫秒為單位,指定動畫的播放時間。默認(rèn)是300毫秒。 android:startOffset 整數(shù)。指定start()方法被調(diào)用后,動畫延遲的毫秒數(shù)。 android:repeatCount 整數(shù)。指定動畫的重復(fù)次數(shù)。如果設(shè)置為“-1”,則動畫會無限次重復(fù),或者指定一個正整數(shù)。例如,設(shè)定為“1”,那么動畫在初始運行一次之后,會再重復(fù)播放一次,因此動畫總共播放了兩次。它的默認(rèn)值是0,這意味著動畫重復(fù)。 android:repeatMode 整數(shù)。它指定動畫到達結(jié)尾時重復(fù)的行為方式。android:repeatCount必須被設(shè)置為正整數(shù)或“-1”時,這個屬性才會有效果。如果設(shè)置為“reverse”,動畫在每次重播時,會逆向播放;如果設(shè)置為“repeat”,那么動畫每次重播時,會重開始的位置播放。 android:valueType 關(guān)鍵屬性,如果值是顏色,則不用指定這個屬性。因為動畫框架會自動的處理顏色值 值 說明 intType 指定動畫的值是整數(shù) floatType(默認(rèn)) 指定動畫的值是浮點數(shù) 例子(EXAMPLE): 這個XML文件被保存在res/animator/property_animator.xml:
要運行這個動畫,就必須在代碼中把這個XML資源填充給一個AnimatorSet對象,然后在啟動這個動畫集之前,把目標(biāo)對象設(shè)置個所有的動畫。調(diào)用setTarget方法可以方便的把一個單一對象設(shè)置給AnimatorSet對象的所有子對象。代碼如下:
- AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext, R.anim.property_animator);
- set.setTarget(myObject);set.start();

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流