D9-Android自定義控制元件之動畫篇1
本篇是關於ObjectAnimator的演示
ObjectAnimator是針對有setXxxxxx方法的屬性,進行的"Xxxxxx"屬性變化動畫
繪製部分就不廢話了,前面已經說很多了,直接進入主題
一、下移示例:

下移動畫.gif
/** * 下移動畫 */ private ObjectAnimator mMoveDown;
float translationY = getTranslationY();//當前Y偏移量 mMoveDown = ObjectAnimator//建立例項 //(View,屬性名,初始化值,結束值) .ofFloat(this, "translationY", translationY, translationY + 300) .setDuration(1000);//設定時常
mMoveDown.start();//開啟動畫
加上背景看一下,可以看出是整個View進行了變化。

加背景.gif
常用屬性一覽:
屬性名 | 演示 | 解釋 |
---|---|---|
alpha |
![]() |
透明度1~0 |
translationX |
![]() |
X方向移動 |
translationY |
![]() |
Y方向移動 |
rotation |
![]() |
旋轉(預設View中心點) |
rotationX |
![]() |
X軸旋轉(預設View中心橫軸) |
translationY |
![]() |
Y軸旋轉(預設View中心縱軸) |
scaleX |
![]() |
X縮放 倍數 |
scaleY |
![]() |
Y縮放 倍數 |
二、其他
旋轉縮放中心點設定:
setPivotX(200); setPivotY(200);

旋轉中心點.gif
多引數
0-->360 360-->0 0-->90
.ofFloat(this, "rotation", 0, 360,360,0,0,90)

多引數.gif
三、自定義ObjectAnimator屬性
內建的只是一些常用的,我們也可以自定義自己的屬性
1.自定義圓的大小動畫
必須用一個setXxx的方法,屬性名則為xxx,呼叫重繪方法
public void setCircleR(float circleR) { mCircleR = circleR; invalidate();//記得重繪 }
private ObjectAnimator circleR() { return ObjectAnimator//建立例項 //(View,屬性名,初始化值,結束值) .ofFloat(this, "circleR", 100, 50,100,20,100) .setDuration(3000);//設定時常 }

自定義半徑.gif
2.自定義顏色動畫
public void setColor(int color) { mColor = color; invalidate(); }
private ObjectAnimator color() { ObjectAnimator color = ObjectAnimator//建立例項 //(View,屬性名,初始化值,結束值) .ofInt(this, "color", 0xff0000ff,0xffF2BA38,0xffDD70BC) .setDuration(3000); color.setEvaluator(new ArgbEvaluator());//顏色的估值器 return color; }

自定義顏色.gif
下一篇將會帶來:set動畫集來控制多個動畫,以及動畫的監聽。
後記、
1.宣告:
[1]本文由張風捷特烈原創,轉載請註明
[2]歡迎廣大程式設計愛好者共同交流
[3]個人能力有限,如有不正之處歡迎大家批評指證,必定虛心改正
[4]你的喜歡與支援將是我最大的動力
2.連線傳送門:
更多安卓技術歡迎訪問:安卓技術棧 我的github地址:歡迎star 張風捷特烈個人網站,程式設計筆記請訪問: http://www.toly1994.com
3.聯絡我
QQ:1981462002
微信:zdl1994328
4.歡迎關注我的微信公眾號,最新精彩文章,及時送達:

公眾號.jpg