【问题标题】:ValueAnimator in Android and how to make it increase by one each secondAndroid中的ValueAnimator以及如何让它每秒增加一个
【发布时间】:2018-11-02 15:38:23
【问题描述】:

我正在开发这个 android 应用程序...我有一个 textview,我想在其中计数。在这个文本视图中,我有声明“此页面已在 X 秒前刷新”。每 20 秒我希望它从 0 重新开始计数。

我已经实现了一个使用 ValueAnimator 类的函数。但是,我不确定如何使 ValueAnimator 每秒将整数值增加 1。我希望它像时钟的秒针一样计数 1...2..3...4..5......20。现在它的计数速度非常快......我想放慢它的速度。每秒 1 个计数。

请问我该怎么做?我查看了一些 ValueAnimator 的方法调用,我不知道如何减慢它的速度……现在它太快了。

另外,每次计数器达到 20 秒时,我应该在哪里添加方法调用?假设我想在它到达 20 时调用 refreshView(),然后再重新开始。

感谢您的宝贵时间,并感谢您的帮助。

ValueAnimator 类: https://developer.android.com/reference/android/animation/ValueAnimator

在我的方法中,我有:

    ValueAnimator valueAnimator = ValueAnimator.ofInt(initialValue, finalValue);
    valueAnimator.setDuration(10000);

    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            textview.setText("This page was refreshed " + valueAnimator.getAnimatedValue().toString() + " seconds ago");
        }
    });
    valueAnimator.start();
    // Repeat 100 times
    valueAnimator.setRepeatCount(100);

【问题讨论】:

    标签: java android counting stopwatch


    【解决方案1】:

    ValueAnimator 用于动画。动画以非常高的速率刷新。我不认为你可以用 valueAnimator 来计算秒数。

    在我的一个应用程序中,我使用 Timer 定期刷新 textView。

    final TextView textview=findViewById(R.id.tv);
        new Timer().scheduleAtFixedRate(new TimerTask() {
            int value=0; //start at 0
            @Override
            public void run() {
                value++ ; 
                runOnUiThread(new Runnable() { //only the main thread can touch his views
                    @Override
                    public void run() {
                        textview.setText("This page was refreshed " + value + " seconds ago"); //refresh text
    
                    }
                });
            }
        }, 0, 1000); //reschedule every 1000 milliseconds
    
    
    }
    

    【讨论】:

    • 完美运行!谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2021-12-19
    • 2015-09-13
    • 2019-07-17
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多