屬性(Property)動畫

2021-07-26 05:16:42 字數 2687 閱讀 2460

屬性動畫與補間動畫的區別:

最大的區別是補間動畫就算控制項移動到任何位置,控制項本身位置還是不變。

而屬性動畫是直接改變控制項的位置。

從某種角度看,屬性動畫是增強版的補間動畫,其強大體現在兩方面:

補間(tween)動畫只能定義兩個關鍵幀在透明度、旋轉、傾斜、位移這4個方面的變化,而屬性動畫可以定義任何屬性的變化。

補間動畫只能對 ui 元件執行動畫,而屬性動畫幾乎可以對任何物件執行動畫。

需要的屬性:

android:duration :

動畫持續時間。預設值 300 毫秒。

android:interpolator :

動畫插值方式。與補間動畫中插值屬性作用類似。

插值器android:interpolator也要定義在set節點才有效

android:repeatcount :

動畫重複次數。repeatcount在animationset中不起作用

android:repeatmode :

元素組合 :

屬性動畫api:

使用 valueanimator 建立動畫

使用 objectanimator 建立動畫

// iview

.settranslationy(3);

/** *

引數一:設定動畫的物件

條件:一定要保證物件擁有getter setter方法 因為擁有getter setter方法的東西才能說是乙個屬性 *

引數二:設定屬性動作的名稱

iview

.set

translationy

(3); *

引數三:

view

的座標起點 *

引數四:座標的結束點 */

objectanimator

offloat

= objectanimator.

offloat

(iview

, "translationy"

, 0, 500);

offloat.start();

須為該物件對應的屬性提供 setter 方法,例如

setalpha(float value) 方法。

呼叫 objectanimator 的 ofint()、offloat() 或 ofobject() 工廠方法時 values... 引數只提供了乙個結束值。因而該物件應為該屬性提供乙個 getter 方法以返回乙個開始值。

如果動畫的物件是 view,為了能顯示動畫效果,可能還需在 onanimationupdate() 事件監聽方法中呼叫 view.invalidate() 方法來重新整理螢幕不過 view 定義的 setter 方法(如 setalpha()、settranslationx() )都會自動呼叫 invalidate() 方法來的顯示。(比如對 drawable 物件的 color 屬性執行動畫)。

監聽:addupdatelistener :監聽物件屬性值變化

監聽:addlistener :監聽動畫執行狀態

使用屬性動畫:

animator

loadanimator

= animatorinflater.

loadanimator

(this

, r.animator.

anima_file);

loadanimator

.settarget(

iview);

loadanimator

.start();

長寬 同時縮小 到原來一半

public

void

scale(view

cview)

@override

public

void

onanimationrepeat(animator

animation)

@override

public

void

onanimationend(animator

animation)

@override

public

void

onanimationcancel(animator

animation)

});

//valueanimator

專用偵聽,用來監聽屬性改變

offloat

.addupdatelistener(

new

animatorupdatelistener()

});offloat

.start();

} set用法 //

目的把左上角移動到右下角 //

使用set

動畫xy

軸都移動

public

void

set(view

cview)

Property 屬性動畫

單個屬性動畫 objectanimator offloat view,rotationx 0,180 setduration 3000 start 多個屬性動畫 多個屬性動畫組合 設定乙個中心點 view.setpivotx 0.5f view.setpivoty 0.5f 方式一 建立多個屬性動畫...

Property動畫之多屬性與關鍵幀

如果想同時改變多個屬性,一般的思路就是組合動畫,animatorset來處理,這裡還有一種比較先進點的方式 propertyvaluesholder 可以將多個屬性的改變放在乙個容器中,可以理解adapter的viewholder propertyvaluesholder是api level 11 ...

property屬性引數

1.讀寫屬性 預設是readwrite,會生成getter和setter方法 如果是readonly表示只會生成getter方法 2.setter處理 預設是assign 賦值 因此基本資料型別不需要加這個引數。因為在setter方法裡,我們經常要將乙個物件賦值給類的成員屬性,這個時候根據記憶體管理...