我希望我的倒计时文本动画上下来计算如下附加的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个不同的文本和动画有解决方案,但由于某种原因我无法使用它。所以任何帮助将不胜感激。谢谢!
答案 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)
答案 2 :(得分:-2)
我不确定这是不是最好的方法,但你可以试试。
为计时器的每个字符创建多个TextView。 然后在你的countdownTimer的onTick中检查所有字符(秒或分钟)的变化,并为这些TextView添加动画。