使用CountDownTimer类时,向上计数动画

时间:2016-10-05 10:43:12

标签: android animation

我希望我的倒计时文本动画上下来计算如下附加的GIF文件。目前它像正常褪色一样动画。我使用CountDownTimer类计数,并使用TextView计时器。以下是代码:

//somecode
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    CountText=(TextView)findViewById(R.id.countText);
    CounterClass timer = new CounterClass(15000,1000);
    timer.start();
}

CounterClass.java

 public class CounterClass extends CountDownTimer {

     public CounterClass(long millisInFuture, long countDownInterval) {
         super(millisInFuture, countDownInterval);
     }

     @Override
     public void onTick(long millisUntilFinished) {
         millis = millisUntilFinished;
         String hms = String.format("%02d:%02d",
                    TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                    TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
         System.out.println(hms);

         CountText.setText(hms);
      }

      @Override
      public void onFinish() {

      }

   }

有什么方法可以实现这个目标吗?一直试图过去2天。我知道通过创建4个不同的文本和动画有解决方案,但由于某种原因我无法使用它。所以任何帮助将不胜感激。谢谢!

enter image description here

3 个答案:

答案 0 :(得分:1)

试试这个,希望对你有帮助。我使用 TranslateAnimation 和 CountDownTimer

         private lateinit var countDownTimer: CountDownTimer
         private lateinit var tvTime:TextView

         tvTime = findViewById(R.id.tv_time)

         val animation = TranslateAnimation(0.0f, 0.0f, -50.0f, 0.0f)
         animation.duration = 80

        countDownTimer =  object : CountDownTimer(10000, 1000) {  
            override fun onTick(millisUntilFinished: Long) {
                tvTime.startAnimation(animation)
                tvTime.text ="${ millisUntilFinished / 1000 }"

            }

            override fun onFinish() {
                tvTime.text = "Done!"
               
            }
        }


        countDownTimer.start()

答案 1 :(得分:0)

如果有人还在寻找答案。

Try此库

您可以使用它来获得所需的动画。

答案 2 :(得分:-2)

我不确定这是不是最好的方法,但你可以试试。

为计时器的每个字符创建多个TextView。 然后在你的countdownTimer的onTick中检查所有字符(秒或分钟)的变化,并为这些TextView添加动画。