文章目錄
- 知識回顧
- 使用方法:
- 示例代碼
各位看官們大家好,上一回中咱們說的例子是"值動畫:ValueAnimator",這一回中咱們說的例子是"值動畫的代碼實作方法"。閑話休提,言歸正轉,讓我們一起Talk Android吧!
知識回顧
我們在上章回中介紹了值動畫的概念以及xml的配置方法,本章回中将介紹如何使用代碼來實作值動畫.
使用方法:
- 建立ValueAnimator類對象,也就是動畫對象;
- 通過ValueAnimator類方法設定動畫運作參數 ;比如setDuaration();
- 給動畫對象添加監聽器,在監聽器中對控件進行相關操作;
- 通過動畫對象的start()方法啟動動畫;
我們需要對該方法做一些細節上的補充說明:
- 建立對象通過
類的靜态方法實作。常用的實作方法:ValueAnimator
它們用來指定動畫的值區間,它們的參數數量是可變的,表示動畫的變化範圍也是多個區間。前兩個方法隻是傳入值的類型不一樣,使用方法完全相同;最後一個方法,需要傳入類的對象,常用的是字母,顔色顔色等類型。ofInt(),ofFloat()和ofObject();
-
類還有其方法,這些方法主要用來設定動畫運作參數,比如重複模式,重複次數,插值器。ValueAnimator
- 動畫監聽器有兩種:動畫變化值監聽器和動畫變化狀态監聽器。常用的是變化值監聽器,它可監聽到動畫變化時的資料。變化狀态監聽器可以監聽到動畫開始、結束,重複這些狀态。
- 在動畫的監聽器中可以擷取到動畫變化時值,值的類型與建立對象使用的類型相同。我們需要依據不同的值對控件進行不同的操作,進而實作動畫效果;
ValueAnimator
的核心思想:它隻負責把在指定的區間内做計算,并且把計算的值通過監聽器傳回來,我們需要在監聽器中結合計算出的值來操作控件,進而實作動畫效果。
示例代碼
ValueAnimator valueAnimator = ValueAnimator.ofInt(10,1);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
int value = (int) animator.getAnimatedValue();
mTVValueAnimator.setText(String.valueOf(value));
}
});
valueAnimator.setDuration(10000);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.start();
上面的代碼中先是建立了一個值動畫,并且設定它的值變化範圍為10到1,然後在該動畫對象的監聽器中擷取這些值,同時把這些值設定到TextView控件上,這樣我們就能看到這些值了。
我們給動畫設定的運作時間是10s,并且添加了線性插值器,這樣可以保證每秒顯示一個變化值。代碼中省略了TextView的布局和代碼,拿來直接使用,大家可以自行補上。編譯并且運作該程式可以得到一個顯示倒計時的動畫,該動畫從數字10到1逐漸變化,我在這裡就不示範具體的效果了,希望大家自己動手實踐。
看官們,關于"值動畫的代碼實作方法"的例子咱們就介紹到這裡,欲知後面還有什麼例子,且聽下回分解!