android countdowntimer的用法,在CountdownTimer上获得剩余时间并将剩余时间用作分数android...

这篇博客讨论了在Android应用中如何结合计时器和得分系统。作者遇到的问题是在用户在限定时间内正确回答问题时,如何获取计时器的剩余时间并将其作为额外分数。解决方案是利用CountDownTimer的onTick方法中的millisUntilFinished来获取剩余时间,并将其转换为分数。同时,建议使用小于1000的间隔更新ProgressBar以获得更平滑的动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所以我在这里有测验应用程序和计时器.所以我想要发生的事情,例如我已经将计时器设置为15秒,如果用户在5秒钟内回答问题,我希望10秒钟的剩余时间变为10分,它将增加到之前的分数加上你得到的分数回答问题.所以现在我有这个……

if(savedInstanceState!=null){

//saved instance state data

int exScore = savedInstanceState.getInt("score");

scoreText.setText("Score: "+exScore);

}

Timer = new CountDownTimer(15000, 1000) {

@Override

public void onTick(long millisUntilFinished) {

tv_time.setText("" + millisUntilFinished / 1000);

int progress = (int) (millisUntilFinished / 150);

progressBar.setProgress(progress);

}

@Override

public void onFinish() {

progressBar.setProgress(0);

timeUp(context);

}

}.start();

这是onclick的一个.如果用户正确回答,它将自动添加10个点

public void onClick(View view) {

Button clicked = (Button) view;

int exScore = getScore();

if (clicked.getText().toString().equals(this.active_question.getAnswer()) ) {

if (this.questions.size() > 0) {

setQuestion(questions.poll());

scoreText.setText("Score: " + (exScore + 10))

} else {

CustomGameOver cdd = new CustomGameOver(PlayQuizActivity.this);

cdd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

cdd.show();

setHighScore();

Timer.cancel();

}

}

我不知道如何在CountdownTimer上获得剩余时间,并在答案正确时将其添加为分数.请有人请帮助我.

解决方法:

只需使用来自CountDownTimer的onTick的millisUntilFinished即可

奖金将是millisUntilFinished / 1000

P.S我认为你最好使用低于1000的间隔,所以ProgressBar看起来会更顺畅.

标签:android,countdowntimer

来源: https://codeday.me/bug/20190724/1526845.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值