Android實現(xiàn)數(shù)字跳動效果的TextView方法示例
前言
本文介紹的是Android如何實現(xiàn)數(shù)字跳動效果的TextView,主要運用了DancingNumberView,DancingNumberView是一個用于跳動顯示文本中數(shù)字的控件,繼承自TextView,這種控件一般用于顯示金額等對用戶較為敏感的數(shù)字,讓UI交互更加生動。
它具有以下幾點特性:
- 自動獲取文本中的所有數(shù)字,并同時開始跳動,免去多個TextView拼接的麻煩
- 支持?jǐn)?shù)字按照自定義的格式顯示,例如限定只顯示小數(shù)點后兩位
效果圖如下

導(dǎo)入使用
Gradle
第1步,在project的build.gradle文件中適當(dāng)位置添加
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
第2步,在app的build.gradle文件中適當(dāng)位置添加依賴項
dependencies {
compile 'com.github.JianxunRao:DancingNumberView:V1.0.1'
}
使用方式
通過XML布局
<me.trojx.dancingnumber.DancingNumberView android:id="@+id/dnv" android:layout_width="wrap_content" android:layout_height="wrap_content" app:dnv_duration="6000" app:dnv_format="%.2f"/>
通過Java代碼
DancingNumberView dnv = (DancingNumberView) findViewById(R.id.dnv); dnv.setText(text);//設(shè)置顯示內(nèi)容 dnv.setDuration(duration);//設(shè)置完成跳動的持續(xù)時長(單位ms) dnv.setFormat(format);//設(shè)置數(shù)字的顯示格式 dnv.dance();//啟動效果,開始數(shù)字跳動
關(guān)鍵代碼
/**
* 文本中的數(shù)字開始跳動
*/
public void dance() {
text = getText().toString();
numbers=new ArrayList<>();
Pattern pattern = Pattern.compile("\\d+(\\.\\d+)?");
Matcher matcher=pattern.matcher(text);
while (matcher.find()){
numbers.add(Float.parseFloat(matcher.group()));
}
textPattern = text.replaceAll("\\d+(\\.\\d+)?",PLACEHOLDER);
numberTemp=new float[numbers.size()];
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(this,"factor",0,1);
objectAnimator.setDuration(duration);
objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
objectAnimator.start();
}
/**
* 獲取算數(shù)因子
* @return 算數(shù)因子
*/
public float getFactor() {
return factor;
}
/**
* 設(shè)置算數(shù)因子,為ObjectAnimator調(diào)用
* @see ObjectAnimator
* @param factor 算數(shù)因子
*/
public void setFactor(float factor) {
String textNow=textPattern;
this.factor = factor;
for (int i=0;i<numberTemp.length;i++){
numberTemp[i]=numbers.get(i)*factor;
textNow=textNow.replaceFirst(PLACEHOLDER,String.format(format,numberTemp[i]));
}
setText(textNow);
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對各位Android開發(fā)者們能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Android開發(fā)方式之Java+html+javascript混合開發(fā)
這篇文章主要為大家詳細(xì)介紹了Android開發(fā)方式的其中一種Java+html+javascript混合開發(fā),感興趣的小伙伴們可以參考一下2016-06-06
Android編程實現(xiàn)TextView部分顏色變動的方法
這篇文章主要介紹了Android編程實現(xiàn)TextView部分顏色變動的方法,涉及Android針對TextView樣式操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
Android自定義有限制區(qū)域的圖例角度自識別涂鴉工具類完結(jié)篇
這篇文章主要為大家介紹了Android自定義有限制區(qū)域的圖例角度自識別涂鴉工具類完結(jié)篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
解決Android studio3.6安裝后gradle Download失敗(構(gòu)建不成功)
這篇文章主要介紹了解決Android studio3.6安裝后gradle Download失敗(構(gòu)建不成功),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
android在異步任務(wù)中關(guān)閉Cursor的代碼方法
android在異步任務(wù)中如何關(guān)閉Cursor?在我們開發(fā)應(yīng)用的時候,很多時候會遇到這種問題,下面我們就看看代碼如何實現(xiàn)2013-11-11
Android集成GreenDao數(shù)據(jù)庫的操作步驟
這篇文章主要介紹了Android集成GreenDao數(shù)據(jù)庫,使用數(shù)據(jù)庫存儲時候,一般都會使用一些第三方ORM框架,比如GreenDao,本文分幾步給大家介紹Android集成GreenDao數(shù)據(jù)庫的方法,需要的朋友可以參考下2022-10-10

