java - Android中的ValueAnimator以及如何使其每秒增加一

标签 java android counting stopwatch

我正在开发这个 Android 应用程序...并且我有一个 TextView ,我想在其中进行计数。在此 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);

最佳答案

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

在我的一个应用程序中,我使用计时器定期刷新 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


}

关于java - Android中的ValueAnimator以及如何使其每秒增加一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50491901/

相关文章:

android - 不显示 Image Fetch From URL online Android

python - 如何反向索引 Counter 并将其转换为 defaultdict? Python

java - ByteArrayInputStream 堆内存不足

Android Studio CMake - 共享库缺少 libc++_shared.so? CMake 可以 bundle 这个吗?

安卓 Intent 数据库

c++ - 计算排序字符串的算法(自制软件 "uniq -c")

数据框中的 Pandas 聚合计数

java - 为什么 MD5 哈希计算的一种函数对于较小的文件更适合,但对于大文件却效率较低?

java - Spring Boot 应用程序中对 REST 端点的自定义访问控制

java - 在Java中搜索字符串中的一组字符串的有效方法