Property動畫之多屬性與關鍵幀

2021-07-09 09:29:26 字數 2482 閱讀 6603

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

propertyvaluesholder是api level 11 加進來的,根據名稱可以判斷出某種屬性的持有者,使用工廠方法構造propertyvaluesholder物件,指定屬性名和屬性值;

//乙個動畫改變多個屬性

view的多屬性動畫的另外一種方式:使用viewpropertyanimator

viewpropertyanimator是api level 12引入的,他是用來做針對view物件的多個屬性動畫功能

(前面的propertyvaluesholder物件是正對所有物件,範圍更廣

如果要同時變換乙個view的多個屬性的話,viewpropertyanimator提供了一種更方便和更適合的方案,而且由於多個屬性的invalidate方法同意管理,而不是之前的分別呼叫。所以還有一些效能的變化。注意viewpropertyanimator這個淚的物件不是油構造的,而是通過view的animate()方法返回的.

原始碼:

/**

* this method returns a viewpropertyanimator object, which can be used to animate

* specific properties on this view.

** @return viewpropertyanimator the viewpropertyanimator associated with this view.

*/public viewpropertyanimator animate()

return manimator;

}

呼叫方式:

v.animate().x(0.5f*example.getwidth()).y(example.getheight()).setduration(3000).start();
同樣實現了右下的效果

關鍵幀keyframe:

propertyvaluesholder的工廠方法裡面,除了整形ofint(),浮點型offloat型別ofobject()之外,還有一種,ofkeyframe().

keyframe型別物件由乙個time/value鍵值對組成,定義了指定時間點的指定值.

每乙個keyframe還可以擁有自己的interpolator,控制了前乙個關鍵幀到這乙個關鍵幀之間的時間動畫行為:

keyframe物件的構造也可以是工廠方法:ofint(),offloat(),ofobject()

keyframe物件構造完成之後就可以用ofkeyframe()工廠方法來構造propertyvaluesholder物件

Property 屬性動畫

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

屬性(Property)動畫

屬性動畫與補間動畫的區別 最大的區別是補間動畫就算控制項移動到任何位置,控制項本身位置還是不變。而屬性動畫是直接改變控制項的位置。從某種角度看,屬性動畫是增強版的補間動畫,其強大體現在兩方面 補間 tween 動畫只能定義兩個關鍵幀在透明度 旋轉 傾斜 位移這4個方面的變化,而屬性動畫可以定義任何屬...

多屬性決策的理論與方法

推薦兩本書 移動雲計算 資源共享技術 李波著 多屬性決策的理論與方法 徐玖平 吳巍編著。關注這個點是因為 移動雲計算 資源共享技術 關於基於多屬性決策的垂直切換。是指在考慮多個屬性的情況下,選擇最優備選方案或進行方案排序的決策問題。多屬性決策一般包括兩部分內容 1 獲取決策資訊,一般包括屬性權重和屬...