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

導入使用
Gradle
第1步,在project的build.gradle文件中適當位置添加
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
第2步,在app的build.gradle文件中適當位置添加依賴項
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);//設置顯示內容 dnv.setDuration(duration);//設置完成跳動的持續(xù)時長(單位ms) dnv.setFormat(format);//設置數字的顯示格式 dnv.dance();//啟動效果,開始數字跳動
關鍵代碼
/**
* 文本中的數字開始跳動
*/
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();
}
/**
* 獲取算數因子
* @return 算數因子
*/
public float getFactor() {
return factor;
}
/**
* 設置算數因子,為ObjectAnimator調用
* @see ObjectAnimator
* @param factor 算數因子
*/
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);
}
總結
以上就是這篇文章的全部內容了,希望本文的內容對各位Android開發(fā)者們能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
Android開發(fā)方式之Java+html+javascript混合開發(fā)
這篇文章主要為大家詳細介紹了Android開發(fā)方式的其中一種Java+html+javascript混合開發(fā),感興趣的小伙伴們可以參考一下2016-06-06
Android自定義有限制區(qū)域的圖例角度自識別涂鴉工具類完結篇
這篇文章主要為大家介紹了Android自定義有限制區(qū)域的圖例角度自識別涂鴉工具類完結篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
解決Android studio3.6安裝后gradle Download失敗(構建不成功)
這篇文章主要介紹了解決Android studio3.6安裝后gradle Download失敗(構建不成功),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03

