由於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是我...