Android動(dòng)畫(huà)資源(一)——屬性動(dòng)畫(huà)資源

Android animations.png

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)簽警绩。

<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à)经柴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市墩朦,隨后出現(xiàn)的幾起案子坯认,更是在濱河造成了極大的恐慌,老刑警劉巖氓涣,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牛哺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡劳吠,警方通過(guò)查閱死者的電腦和手機(jī)引润,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)痒玩,“玉大人淳附,你說(shuō)我怎么就攤上這事』思裕” “怎么了燃观?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵褒脯,是天一觀(guān)的道長(zhǎng)便瑟。 經(jīng)常有香客問(wèn)我,道長(zhǎng)番川,這世上最難降的妖魔是什么到涂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮颁督,結(jié)果婚禮上践啄,老公的妹妹穿的比我還像新娘。我一直安慰自己沉御,他們只是感情好屿讽,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般伐谈。 火紅的嫁衣襯著肌膚如雪烂完。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天诵棵,我揣著相機(jī)與錄音抠蚣,去河邊找鬼。 笑死履澳,一個(gè)胖子當(dāng)著我的面吹牛嘶窄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播距贷,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼柄冲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了忠蝗?” 一聲冷哼從身側(cè)響起羊初,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎什湘,沒(méi)想到半個(gè)月后长赞,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闽撤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年得哆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哟旗。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贩据,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闸餐,到底是詐尸還是另有隱情饱亮,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布舍沙,位于F島的核電站近上,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拂铡。R本人自食惡果不足惜壹无,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望感帅。 院中可真熱鬧斗锭,春花似錦、人聲如沸失球。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至豺撑,卻和暖如春作箍,著一層夾襖步出監(jiān)牢的瞬間贸呢,已是汗流浹背服傍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工洼滚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洞斯,地道東北人轮纫。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓陆盘,卻偏偏與公主長(zhǎng)得像经瓷,于是被迫代替她去往敵國(guó)和親汤善。 傳聞我的和親對(duì)象是個(gè)殘疾皇子危号,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361