本篇是關於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縮放 倍數 |
二、其他
1.旋轉縮放中心點設置:
setPivotX(200); setPivotY(200);
旋轉中心點.gif
2.多參數
0-->360 360-->0 0-->90
.ofFloat(this, "rotation", 0, 360,360,0,0,90)
多參數.gif
3.延遲、重複、重複模式
重複模式:ValueAnimator.RESTART(1)和ValueAnimator.REVERSE(2) 重複次數:ValueAnimator.INFINITE爲無限循環(-1)
translationX.setStartDelay(1000); translationX.setRepeatCount(2); translationX.setRepeatMode(ValueAnimator.RESTART);
RESTART重複效果
延遲,RESTART重複.gif
REVERSE重複效果
REVERSE重複.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]你的喜歡與支持將是我最大的動力