扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
怎么在Android中利用CountDownTimer类实现一个倒计时闹钟?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
专注于为中小企业提供成都网站设计、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业惠水免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
MainActivity:
package com.home.brewclock; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.os.CountDownTimer; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { private Button addTimeBtn; private Button decreaseTimeBtn; private Button startBtn; private Button closeMusicBtn; private TextView timeText; private int brewTime = 3; private CountDownTimer countDownTimer; private boolean isBrewing = false; private MediaPlayer alarmMusic; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); addTimeBtn = (Button) findViewById(R.id.main_btn_up); decreaseTimeBtn = (Button) findViewById(R.id.main_btn_down); startBtn = (Button) findViewById(R.id.main_start); closeMusicBtn = (Button) findViewById(R.id.main_btn_close_music); timeText = (TextView) findViewById(R.id.main_tv); addTimeBtn.setOnClickListener(this); decreaseTimeBtn.setOnClickListener(this); startBtn.setOnClickListener(this); closeMusicBtn.setOnClickListener(this); setBrewTime(3); } /** * 设置闹钟倒计时初始值 * * @param minutes */ public void setBrewTime(int minutes) { if (isBrewing) return; brewTime = minutes; if (brewTime < 1) { brewTime = 1; } timeText.setText(String.valueOf(brewTime) + "m"); } /** * 开启闹钟 */ public void startBrew() { // 创建一个CountDownTimer对象记录闹钟时间 countDownTimer = new CountDownTimer(brewTime * 60 * 1000, 1000) { @Override public void onTick(long millisUntilFinished) { timeText.setText(String.valueOf(millisUntilFinished / 1000) + "s"); } @Override public void onFinish() { isBrewing = false; timeText.setText(brewTime + "m"); startBtn.setText("Start"); // 加载指定音乐,并为之创建MediaPlayer对象 alarmMusic = MediaPlayer.create(MainActivity.this, R.raw.music); // 设置为循环播放 alarmMusic.setLooping(true); // 播放音乐 alarmMusic.start(); closeMusicBtn.setVisibility(0); } }; countDownTimer.start(); startBtn.setText("Stop"); isBrewing = true; } /** * 停止计时 */ public void stopBrew() { if (countDownTimer != null) { countDownTimer.cancel(); } isBrewing = false; startBtn.setText("Start"); } @Override public void onClick(View v) { if (v == addTimeBtn) { setBrewTime(brewTime + 1); } else if (v == decreaseTimeBtn) { setBrewTime(brewTime - 1); } else if (v == startBtn) { if (isBrewing) { stopBrew(); } else { startBrew(); } } else if (v == closeMusicBtn) { if (alarmMusic != null) { alarmMusic.stop(); closeMusicBtn.setVisibility(8); } } } }
布局文件:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流