Android動(dòng)畫(huà)資源系列文章:Android動(dòng)畫(huà)資源文件總結(jié)
Property Animation
- 在XML中定義的一種動(dòng)畫(huà)锈津,它修改目標(biāo)對(duì)象的屬性已脓,例如背景顏色或透明度值锋边。
-
文件位置
res/animator/filename.xml
該文件名將作為資源ID。 -
資源引用方式
Java中:R.animator.filename
XML中: @[package:]animator/filename - 語(yǔ)法
<set
android:ordering=["together" | "sequentially"]>
<objectAnimator
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"]/>
<animator
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"]/>
<set>
...
</set>
</set>
-
注意
- 屬性動(dòng)畫(huà)資源文件只能有一個(gè)根標(biāo)簽握巢,而且只能是<set>抹腿,< objectanimator >或< ValueAnimator >中的一
個(gè)岛请。 - <set>可以將多個(gè)動(dòng)畫(huà)標(biāo)簽組合起來(lái),同時(shí)<set>標(biāo)簽內(nèi)也可以嵌套<set>標(biāo)簽警绩。
- 屬性動(dòng)畫(huà)資源文件只能有一個(gè)根標(biāo)簽握巢,而且只能是<set>抹腿,< objectanimator >或< ValueAnimator >中的一
<set>
一個(gè)能夠包裹其它元素(<objectAnimator>, <valueAnimator>或者其它 <set>)的容器崇败。相當(dāng)于Java代碼中的AnimatorSet。
每一個(gè)<set > 都可以通過(guò)ordering屬性定義自己動(dòng)畫(huà)的執(zhí)行順序肩祥。
-
屬性
android:ordering 指定動(dòng)畫(huà)的播放順序屬性值 描述 sequentially 動(dòng)畫(huà)順序執(zhí)行 together (默認(rèn)值) 動(dòng)畫(huà)一起執(zhí)行
<objectAnimator>
- 在一段特定的時(shí)間內(nèi)改變對(duì)象的特定屬性后室。相當(dāng)于Java代碼中的ObjectAnimator。
-
屬性
android:propertyName
屬性值類(lèi)型:String搭幻。
屬性名咧擂,例如:可以是alpha或者backgroundColor等等逞盆。android:valueTo
屬性值類(lèi)型:float檀蹋,int,或者color云芦。
動(dòng)畫(huà)結(jié)束的屬性值俯逾,可以使float,int或者color舅逸,如果是color類(lèi)型桌肴,應(yīng)該由六位十六進(jìn)制數(shù)(例如, #333333)表示。android:valueFrom
屬性值類(lèi)型: float琉历,int坠七,或者color。
動(dòng)畫(huà)開(kāi)始的屬性值android:duration
屬性值類(lèi)型:int旗笔。
動(dòng)畫(huà)持續(xù)的時(shí)間彪置,單位毫秒,默認(rèn)值為300毫秒蝇恶。android:startOffset
屬性值類(lèi)型:int拳魁。
調(diào)用 start()方法以后延時(shí)的毫秒數(shù)。android:repeatCount
屬性值類(lèi)型:int撮弧。
動(dòng)畫(huà)重復(fù)執(zhí)行的次數(shù)潘懊。repeatCount 可以設(shè)置為正整數(shù)或者-1姚糊。repeatCount 設(shè)置為-1代表動(dòng)畫(huà)無(wú) 限循環(huán);repeatCount 設(shè)置為一個(gè)正整數(shù)授舟,例如1救恨,代表在動(dòng)畫(huà)運(yùn)行完成以后再重復(fù)運(yùn)行一次,也就是總共運(yùn)行兩次释树。repeatCount 默認(rèn)值是0忿薇,代表不重復(fù)執(zhí)行動(dòng)畫(huà)。android:repeatMode
屬性值類(lèi)型:int躏哩。
動(dòng)畫(huà)在動(dòng)畫(huà)結(jié)束時(shí)的表現(xiàn)方式署浩。repeatcount必須設(shè)置為正整數(shù)或“-1”repeatMode這個(gè)屬性才有效。repeatMode設(shè)置為“reverse”為倒序重復(fù)執(zhí)行動(dòng)畫(huà)扫尺,repeatMode設(shè)置為“repeat”為正序重復(fù)執(zhí)行動(dòng)畫(huà)筋栋。-
android:valueType
動(dòng)畫(huà)值類(lèi)型。如果值為顏色正驻,則不指定此屬性弊攘,動(dòng)畫(huà)框架自動(dòng)處理顏色值。valueType屬性有intType和floatType 兩種屬性值姑曙。屬性值 描述 intType 指定動(dòng)畫(huà)值為int類(lèi)型 floatType (默認(rèn)值) 指定動(dòng)畫(huà)值為float類(lèi)型
<animator>
在指定的時(shí)間段執(zhí)行動(dòng)畫(huà)襟交。相當(dāng)于Java代碼中的ValueAnimator。
-
屬性
android:valueTo
屬性值類(lèi)型:float,int或者color伤靠。
動(dòng)畫(huà)結(jié)束的屬性值捣域,如果是color類(lèi)型,應(yīng)該由六位十六進(jìn)制數(shù)(例如:#333333)表示宴合。android:valueFrom
屬性值類(lèi)型:float,int或者color
動(dòng)畫(huà)開(kāi)始的屬性值焕梅。android:duration
屬性值類(lèi)型:int。
動(dòng)畫(huà)持續(xù)的時(shí)間卦洽,單位毫秒贞言,默認(rèn)值為300毫秒。android:startOffset
屬性值類(lèi)型:int類(lèi)型
調(diào)用 start()方法以后延時(shí)的毫秒數(shù)阀蒂。android:repeatCount
屬性值類(lèi)型:int類(lèi)型
動(dòng)畫(huà)重復(fù)執(zhí)行的次數(shù)该窗。repeatCount 可以設(shè)置為正整數(shù)或者-1。repeatCount 設(shè)置為-1代表動(dòng)畫(huà)無(wú)限循環(huán)蚤霞;repeatCount 設(shè)置為一個(gè)正整數(shù)酗失,例如1,代表在動(dòng)畫(huà)運(yùn)行完成以后再重復(fù)運(yùn)行一次争便,也就是總共運(yùn)行兩次级零。repeatCount 默認(rèn)值是0,代表不重復(fù)執(zhí)行動(dòng)畫(huà)。android:repeatMode
屬性值類(lèi)型:int類(lèi)型奏纪。
動(dòng)畫(huà)在動(dòng)畫(huà)結(jié)束時(shí)的表現(xiàn)方式鉴嗤。repeatcount必須設(shè)置為正整數(shù)或“-1”repeatMode這個(gè)屬性才有效。repeatMode設(shè)置為“reverse”為倒序重復(fù)執(zhí)行動(dòng)畫(huà)序调,repeatMode設(shè)置為“repeat”為正序重復(fù)執(zhí)行動(dòng)畫(huà)醉锅。-
android:valueType
如果值為顏色,則不指定此屬性发绢,動(dòng)畫(huà)框架自動(dòng)處理顏色值硬耍。屬性值 描述 intType 指定動(dòng)畫(huà)值為int類(lèi)型 floatType (默認(rèn)值) 指定動(dòng)畫(huà)值為float類(lèi)型
舉例
XML 文件位置:res/animator/property_animator.xml:
<set android:ordering="sequentially">
<set>
<objectAnimator
android:propertyName="x"
android:duration="500"
android:valueTo="400"
android:valueType="intType"/>
<objectAnimator
android:propertyName="y"
android:duration="500"
android:valueTo="300"
android:valueType="intType"/>
</set>
<objectAnimator
android:propertyName="alpha"
android:duration="500"
android:valueTo="1f"/>
</set>
下面代碼將實(shí)現(xiàn)上面property_animator動(dòng)畫(huà)的調(diào)用。
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
R.anim.property_animator);
set.setTarget(myObject);
set.start();
注意:調(diào)用setTarget()方法為AnimatorSet的所有子項(xiàng)設(shè)置單個(gè)目標(biāo)對(duì)象边酒,也就是setTarget()設(shè)置的目標(biāo)對(duì)象才執(zhí)行動(dòng)畫(huà)经柴。