欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android数字变化动画_数字递增动画效果

程序员文章站 2022-02-14 11:20:35
...

分享一个数字Android增长的Demo、这是一个自定义view、布局就是一个简单的线性布局而已、通过addview的方式、将自定义view显示出来、渐变圆以及外圈圆、外圈小圆是自定义view、其他三个文字是Textview

Android数字变化动画_数字递增动画效果


跑小数动画代码

private void runFloat() {
    ValueAnimator valueAnimator = ValueAnimator.ofFloat(fromNumber, number);
    valueAnimator.setDuration(duration);

    valueAnimator
            .addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {

                    setText(fnum.format(Float.parseFloat(valueAnimator
                            .getAnimatedValue().toString())));
                    if (valueAnimator.getAnimatedFraction() >= 1) {
                        mPlayingState = STOPPED;
                        if (mEndListener != null)
                            mEndListener.onEndFinish();
                    }
                }


            });

    valueAnimator.start();
}


跑整数动画代码

private void runInt() {

    ValueAnimator valueAnimator = ValueAnimator.ofInt((int) fromNumber,
            (int) number);
    valueAnimator.setDuration(duration);

    valueAnimator
            .addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    //设置瞬时的数据值到界面上
                    setText(valueAnimator.getAnimatedValue().toString());
                    if (valueAnimator.getAnimatedFraction() >= 1) {
                        //设置状态为停止
                        mPlayingState = STOPPED;
                        if (mEndListener != null)
                            //通知监听器,动画结束事件
                            mEndListener.onEndFinish();
                    }
                }
            });
    valueAnimator.start();
}


使用方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    init();
}

private void init() {

    doughnutView.removeAllViews();
    doughnutView.addView(new HomeArcView(this, 83, 1));
    animText(tvRiseNum, 2348);
    tvNum01.setText("当前人数为83人");
    tvNum02.setText("更新于12:00");
}

/**
 * 给一个TextView设置一个数字增长动画
 */
public static void animText(RiseNumberTextView tv, int number) {
    // 设置数据
    tv.withNumber(number);
    // 设置动画播放时间
    tv.setDuration(1500);
    tv.start();
}


android 数字增加动画源代码下载链接: android 数字递增动画 密码: zhy6