簡體   English   中英

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

[英]ValueAnimator in Android and how to make it increase by one each second

我正在使用這個android應用程序...並且我有一個textview,在這里我想數一數。 在此文本視圖中,我聲明“此頁面X秒鍾前已刷新”。 我希望每20秒從0重新開始其計數。

我已經實現了一個使用ValueAnimator類的函數。 但是,我不確定如何使ValueAnimator每秒鍾將整數值增加1。 我希望它像鍾表的秒針一樣計數1 ... 2..3 ... 4..5 ...... 20。 現在,它的計數速度非常快...我想放慢它waaayyyy。 每秒計數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


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM