天天看點

一起Talk Android吧(第四百八十七回:值動畫的代碼實作方法)知識回顧使用方法:示例代碼

文章目錄

  • 知識回顧
  • 使用方法:
  • 示例代碼

各位看官們大家好,上一回中咱們說的例子是"值動畫:ValueAnimator",這一回中咱們說的例子是"值動畫的代碼實作方法"。閑話休提,言歸正轉,讓我們一起Talk Android吧!

知識回顧

我們在上章回中介紹了值動畫的概念以及xml的配置方法,本章回中将介紹如何使用代碼來實作值動畫.

使用方法:

  1. 建立ValueAnimator類對象,也就是動畫對象;
  2. 通過ValueAnimator類方法設定動畫運作參數 ;比如setDuaration();
  3. 給動畫對象添加監聽器,在監聽器中對控件進行相關操作;
  4. 通過動畫對象的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逐漸變化,我在這裡就不示範具體的效果了,希望大家自己動手實踐。

看官們,關于"值動畫的代碼實作方法"的例子咱們就介紹到這裡,欲知後面還有什麼例子,且聽下回分解!