Android数字变化动画_数字递增动画效果
程序员文章站
2022-02-14 11:20:35
...
分享一个数字Android增长的Demo、这是一个自定义view、布局就是一个简单的线性布局而已、通过addview的方式、将自定义view显示出来、渐变圆以及外圈圆、外圈小圆是自定义view、其他三个文字是Textview
跑小数动画代码
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