android数字滚动动画,Android超简单实现金钱滚动效果
目錄
目錄
效果展示
實現(xiàn)原理
利用ValueAnimator將數(shù)值從0一直增長到你所需要展示的數(shù)值,然后使用TextView將增長過程中的數(shù)值不斷展示即可實現(xiàn)金錢的滾動效果。
ValueAnimator基礎講解
ValueAnimator是Android中用來實現(xiàn)屬性動畫的類,它是Android3.0后才引入的,它可以實現(xiàn)將數(shù)值從某一個值到某一個值的變化,比如ValueAnimator.ofInt(10,100)就可以實現(xiàn)數(shù)值從10到100的變化,而此方法的參數(shù)類型是可變長度的參數(shù),即可以傳入多個數(shù)值,比如ValueAnimator.ofInt(10,100,20)則可實現(xiàn)數(shù)值從10到100到20的變化,那么我們如何獲取期間變化的值呢?這里我們通過valueAnimator.addUpdateListener()添加一個監(jiān)聽事件來獲取,而動畫的時長可以用setDuration()方法來設置。
ValueAnimator mValueAnimator = ValueAnimator.ofInt(0,100);
mValueAnimator.setDuration(1000);//動畫時間為1秒
mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int value = (int) animation.getAnimatedValue();//獲取期間變化的值
}
});
實現(xiàn)效果(代碼展示)
public class RunnTextView extends TextView {
private ValueAnimator mValueAnimator;
private DecimalFormat mDf;
public RunnTextView(Context context) {
this(context,null);
}
public RunnTextView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public RunnTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
//格式化小數(shù)(保留小數(shù)點后兩位)
mDf = new DecimalFormat("0.00");
initAnim();
}
/**
* 初始化動畫
*/
private void initAnim() {
mValueAnimator = ValueAnimator.ofFloat(0,0);//由于金錢是小數(shù)所以這里使用ofFloat方法
mValueAnimator.setDuration(1000);//動畫時間為1秒
mValueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = (float) animation.getAnimatedValue();
if(value>0){//當數(shù)值大于0的時候才賦值
setText(mDf.format(value));
}
}
});
}
/**
* 設置要顯示的金錢
* @param money
*/
public void setMoney(float money){
mValueAnimator.setFloatValues(0,money);//重新設置數(shù)值的變化區(qū)間
mValueAnimator.start();//開啟動畫
}
/**
* 取消動畫和動畫監(jiān)聽(優(yōu)化內存)
*/
public void cancle(){
mValueAnimator.removeAllUpdateListeners();//清除監(jiān)聽事件
mValueAnimator.cancel();//取消動畫
}
}
總結
以上是生活随笔為你收集整理的android数字滚动动画,Android超简单实现金钱滚动效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: igmp是哪个层协议_通俗易懂网络协议(
- 下一篇: Java需要掌握的底层知识_Java程序