如果想同時改變多個屬性,一般的思路就是組合動畫,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 獲取決策資訊,一般包括屬性權重和屬...