Android高仿(余額寶)數(shù)字動畫效果

最近公司產(chǎn)品開發(fā)需要用到這個動畫效果,隨手造個輪子,有需要的朋友可以直接拿來用。

先看來下實現(xiàn)效果圖:


1.gif

下面是具體代碼,可直接復制:

package com.lcw.rabbit.widget;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.TextView;

/**
 * 高仿余額寶數(shù)字動畫
 */
public class CountNumberView extends TextView {
    //動畫時長
    private int duration = 1500;
    //顯示數(shù)字
    private float number;
    //顯示表達式
    private String regex;

    //顯示表示式
    public static final String INTREGEX = "%1$01.0f";//不保留小數(shù),整數(shù)
    public static final String FLOATREGEX = "%1$01.2f";//保留2位小數(shù)

    public CountNumberView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    /**
     * 顯示帶有動畫效果的數(shù)字
     * @param number
     * @param regex
     */
    public void showNumberWithAnimation(float number, String regex) {
        if (TextUtils.isEmpty(regex)) {
            //默認為整數(shù)
            this.regex = INTREGEX;
        } else {
            this.regex = regex;
        }
        //修改number屬性,會調(diào)用setNumber方法
        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(this, "number", 0, number);
        objectAnimator.setDuration(duration);
        //加速器,從慢到快到再到慢
        objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
        objectAnimator.start();
    }

    /**
     * 獲取當前數(shù)字
     * @return
     */
    public float getNumber() {
        return number;
    }

    /**
     * 根據(jù)正則表達式,顯示對應數(shù)字樣式
     * @param number
     */
    public void setNumber(float number) {
        this.number = number;
        setText(String.format(regex, number));
    }
}

使用方法,在XML里聲明后(可以完全當成TextView來使用),
直接在Java文件里調(diào)用:

mTvCountNum1.showNumberWithAnimation(3201.23f, CountNumberView.FLOATREGEX);
mTvCountNum2.showNumberWithAnimation(65535f, CountNumberView.INTREGEX);

這里為了靈活使用,預留了數(shù)字顯示格式(默認提供整型號和浮點型),
大家可以根據(jù)自己的需要去更改Regex。

關于String.format的第一個格式參數(shù),這里引用下api的描述:

可選 flags 是修改輸出格式的字符集。有效標志集取決于轉(zhuǎn)換類型。

可選 width 是一個非負十進制整數(shù),表明要向輸出中寫入的最少字符數(shù)。

可選 precision 是一個非負十進制整數(shù),通常用來限制字符數(shù)。特定行為取決于轉(zhuǎn)換類型。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 最近公司產(chǎn)品開發(fā)需要用到這個動畫效果,隨手造個輪子,有需要的朋友可以直接拿來用。先看來下實現(xiàn)效果圖: 下面是具體代...
    李晨瑋閱讀 2,476評論 2 41
  • 一、輸入和輸出流 C 語言的標準輸入輸出函數(shù)都是獨立于設備的,不需要考慮如何在特定設備上傳輸數(shù)據(jù);C 語言的庫函數(shù)...
    seraphzxz閱讀 1,215評論 0 51
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,235評論 0 38
  • 一年又一年,字節(jié)跳動 Lark(飛書) 研發(fā)團隊又雙叒叕開始招新生啦!【內(nèi)推碼】:GTPUVBA【內(nèi)推鏈接】:ht...
    盧卡斯嗶嗶嗶閱讀 692評論 0 1
  • 目錄 組合邏輯電路編碼器譯碼器數(shù)據(jù)選擇器(多路開關、多路復用器)加法器數(shù)值比較器 半導體存儲電路鎖存器觸發(fā)器鎖存器...
    Tenloy閱讀 3,270評論 0 3

友情鏈接更多精彩內(nèi)容