如何在TextView中进行计数动画

时间:2015-11-21 04:54:53

标签: java android textview sharedpreferences

所以在我的游戏中有分数标签,将在游戏中显示

这是我的标签分数

的示例

这是代码:

    highscoretext = (TextView)findViewById(R.id.bt);
    highscoretext.setText("0");

    currentscore = (TextView)findViewById(R.id.ct);
    currentscore.setText(String.valueOf(gamescore));

这就是我如何保存将在bestscore中显示的分数

           SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
           SharedPreferences.Editor editor = pref.edit();
           editor.putInt("totalScore", gamescore);

            if (gamescore > highscore){
                highscoretext.setText(String.valueOf(gamescore));
                editor.putInt("highscore", gamescore);
                editor.commit();    

我想知道像我这样的TextView制作动画

因此,当标签分数显示时,分数将从0到当前分数计算,例如:10

当得分停止计数时,如果得分>最佳分数,最佳分数值改变

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

对于 API> 11 ,我建议你使用ValueAnimator

ValueAnimator animator = new ValueAnimator();
animator.setObjectValues(0, count);// here you set the range, from 0 to "count" value
animator.addUpdateListener(new AnimatorUpdateListener() {
    public void onAnimationUpdate(ValueAnimator animation) {
     highscoretext.setText(String.valueOf(animation.getAnimatedValue()));
    }
});
animator.setDuration(1000); // here you set the duration of the anim
animator.start();

答案 1 :(得分:0)

使用某种计时器实现它应该相当简单。每次定时器点击时,您都会增加分数并更新显示,除非您已达到最终分数。

这可以使用处理程序(http://developer.android.com/reference/android/os/Handler.html)或java.util.Timer(http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html)完成,但后一种方法可能不适合Android开发。

(资料来源:How to set a timer in android