Android 屬性動畫學習

2021-07-10 20:11:07 字數 2572 閱讀 7505

由於android 3.0之前的 動畫框架存在一定的侷限--動畫改變的只是顯示,不能響應時間,所以3.0後google提出了屬性動畫

這樣乙個新的動畫框架。

在animator中使用最多的就是animatorset和objectanimator,使用objectanimator進行更精準的控制,只控制物件的乙個屬性值,而使多個objectanimator組合到animatorset形成乙個動畫,可以呼叫setframedelay設定動畫幀之間的間隙時間

objectanimator是屬性動畫中最重要的實行類,建立乙個objectanimator只需通過他的靜態工廠類直接返回乙個物件

乙個簡單的平移動畫

textview tv = (textview) findviewbyid(r.id.heheda);

//平移動畫

objectanimator animator = objectanimator.offloat

(tv,

"translationx",

300);

animator.setduration(300);

animator.start();

在使用objectanimator的時候,操作的屬性必須有get,set方法,不然無法起效
*translationx和 translationy:這兩個屬性作為乙個增量來控制view從他布局容器的左上角偏移的位置
*rotaion rotionx和rotaiony :這三個屬性控制view物件圍繞他的支點進行2d縮放
*pivotx和pivoty:這兩個屬性控制view物件支點的位置,圍繞這個支點進行縮放旋轉處理
*alpha:表示view的alpha透明程度預設1(不透明) 0(完全透明)
*x和y最簡單的兩個實用的屬性描述了view在父容器中最終的位置

propertyvaluesholder
如果只對乙個物件的多個屬性,要同時作用多種都能動畫可以使用propertyvaluesholder
propertyvaluesholder pv1 = propertyvaluesholder.offloat("translationx",300f);

propertyvaluesholder pv2 = propertyvaluesholder.offloat

("scalex",10f,5f,10f);//

開始x,到x,

結束xpropertyvaluesholder pv3 = propertyvaluesholder.offloat

("scaley",10f,5f,10f);

objectanimator.ofpropertyvaluesholder

(tv,pv2,pv3).setduration(5000).start();

//valueanimator

本身不提供任何動畫效果

,它更像乙個數值器

,用來生產有一定規律的數字

,從而讓呼叫者來控制動畫實現過程//在

valueanimator

的animatorupdatelistener

中監聽數值的變化

finalvalueanimator valueanimator = valueanimator.offloat

(0,100);

valueanimator.settarget(tv);

valueanimator.setduration(3000);

valueanimator.addupdatelistener(newvalueanimator.animatorupdatelistener()

});//

乙個完整動畫於

start repeat ed cancel

四個過程功過

android

提供的四個介面

//可以很方便的監聽到這四個監聽事件

objectanimator animator = objectanimator.offloat

(tv,"alpha",0.5f);

animator.addlistener(newanimator.animatorlistener()

@override

public voidonanimationend(animator animation)

@override

public voidonanimationcancel(animator animation)

@override

public voidonanimationrepeat(animator animation)

});}

android屬性動畫

一 屬性動畫的工作原理,主要有三個步驟 1 計算時間流逝。android動畫系統呼叫,用0 1代表時間的流逝。0表示經過0 的時間,1表示經過100 的時間。2 根據timeinterpolator計算出乙個差值因素。timeinterpolator以第1步流逝的時間作為引數,根據運動規則得出另乙個...

android 屬性動畫

package com.example.objectanimator import android.animation.animator import android.animation.animatorlisteneradapter import android.animation.animato...

Android屬性動畫

android的動畫可以分為三種 補間動畫,幀動畫,屬性動畫。現在很多書籍種大部分都是簡單的描述補間動畫和幀動畫,屬性動畫的概念卻沒有提到,所以今天就全面的分析一下屬性動畫。屬性動畫實際操作的是view的屬性值,因此可以很靈活的實現各種效果,而不侷限於之前的幾種動畫。objectanimator是我...