随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。

下面使用CountDownTimer类实现倒计时小闹钟,CountDownTimer类其实很简单,一般只需重写其onFinish和onTick方法就可以实现倒计时小闹钟,代码如下:

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;@Overridepublic 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) {@Overridepublic void onTick(long millisUntilFinished) {timeText.setText(String.valueOf(millisUntilFinished / 1000)+ "s");}@Overridepublic 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");}@Overridepublic 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);}}}
}

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent" ><Buttonandroid:id="@+id/main_btn_close_music"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="关闭音乐"android:visibility="gone" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:gravity="center"android:orientation="horizontal" ><Buttonandroid:id="@+id/main_btn_down"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="-"android:textSize="40dp" /><TextViewandroid:id="@+id/main_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:text="0:00"android:textSize="40dp" /><Buttonandroid:id="@+id/main_btn_up"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="+"android:textSize="40dp" /></LinearLayout><Buttonandroid:id="@+id/main_start"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:text="Start" /></RelativeLayout>

使用CountDownTimer类实现倒计时小闹钟相关推荐

  1. 倒计时小工具_送你3个倒数计日的小程序,让你不再遗忘重要事

    每天我们忙于工作,忙于生活,在很多重要事情,重要人的生日,以及重要有意义的日子总会在忙碌中被遗忘,那么这该怎么办呢?别紧张,小编为你带来3个倒数计日的小程序,让你不再遗忘重要事情,日子. 1.倒数计日 ...

  2. C# - 音乐小闹钟_BetaV1.0

    时间:2017-11-20 作者:byzqy 介绍: 前段时间看到别人利用Timer控件实现了检查电脑本地时间,然后对时间进行比较,最终实现闹钟功能.感觉有点意思,于是自己也做了一个小闹钟! 先看一下 ...

  3. Python——当日24时小闹钟制作

    一.程序介绍: 利用Python语言制作一个可以在当天进行定时发声的小闹钟.在输入规定的时间点后,系统会进行倒计时,并且显示当前的系统时间,在到达规定时间后,程序会播放音乐,已提醒时间到了. 二.程序 ...

  4. Proteus仿真小闹钟_C51

    Proteus仿真小闹钟_C51 简介 介绍 功能 演示 注意问题 多文件结构 结构体 AT24C02 仿真时序 主要代码 简介 这个小假期被作业支配了,最近这段时间也在忙其他东西,没时间更新博客了. ...

  5. python闹钟界面源码_Python GUI 教程 25行代码写一个小闹钟

    今天我们讲一下用Python写的GUI小程序.一个小闹钟(只是屏幕提示,没有声音哦) 让我们先介绍这个闹钟如何奇葩. 需要通过命令行启动. 没有标题栏. 没菜单. 甚至没有关闭按钮. 没有运行界面. ...

  6. 用MFC制作一个倒计时小程序

    用MFC制作一个倒计时小程序 1.思路: 1)初始步骤1:新建一个工程,选择MFC AppWizard(exe),工程名命名为CdTimer,选择基于对话框形式的应用程序,将此主对话框用于显示剩余的时 ...

  7. 利用C#语言实现小闹钟

    本图文主要是15级团队学习成果的汇报" 利用C#语言实现小闹钟".

  8. Android菜鸟的成长笔记(25)——可爱的小闹钟

    摘要: 这一篇主要使用系统为我们提供的一个服务AlarmManager来制作一个Android小闹钟,同时还涉及到了自定义主题.判断第一次启动应用.自定义动画.对话框.制作指导滑动页面等方面.最后形成 ...

  9. 发布一个实体类属性生成小工具,给开发加点料

    做了很久的代码生成工具,基本上都是基于表生成实体类属性的,把数据库表的信息拿出来,然后之乎者也后生成一个标准的实体类,包含字段.属性.描述等东西. 是基于整个数据库生成整个框架代码的工具,如我的代码生 ...

最新文章

  1. 百度地图 osm地图 leaflet echarts webapck的组合使用时的踩坑记录
  2. JAVA代码如何实现删除文件夹6_java文件创建、删除、读取、写入操作大全
  3. C++找出数组中的第一个非重复整数的算法(附完整源码)
  4. 7-68 求整数段和 (15 分)
  5. sql server序列_SQL Server中的序列对象功能
  6. 介绍Linux系统如何初始化和启动系统服务的
  7. 从氨基酸到大分子(蛋白质、核酸)
  8. my97Date如何多选日期且无重复日期
  9. jQuery - animate(滑块滑动)
  10. 数据科学研究的现状与趋势全解
  11. Tomcat导入J2EE项目教程
  12. Ansible主机清单—inventory主机清单
  13. 孙子兵法始计篇读后感&心得(上)
  14. 程序员因接外包坐牢 456 天!两万字长文揭露心酸真实经历
  15. 为什么电脑安装qq后显示没网络连接服务器,能上QQ电脑却无法上网怎么解决
  16. Swagger、Rap与Yapi接口管理
  17. 2022第十一届PMO大会(线上会议)成功召开
  18. BCS2022|“体系化防御,数字化运营” 奇安信终端安全能力再升级
  19. CSDN超级实习生计划学习打卡—— Ipv6
  20. 5 CAP理论是什么?

热门文章

  1. 办公室常用赞美英语经典句子
  2. NSX-T 系列:第 4 部分 - 配置NSX Manager集群
  3. 用python判断是否为闰年。节气,一年的天数,一年还剩多少天
  4. 用图片文字识别软件 复制微信小助手的开票信息
  5. 【netcore基础】wwwroot下静态资源文件访问权限控制
  6. [数据库汇总]-- sql 的基本知识
  7. 〖产品思维训练白宝书 - 基础学科素养篇①〗- 哪些学科知识更有利于我们掌握产品思维?
  8. 起床困难综合症(0x01位运算)
  9. 从网页输入url到页面展示,浏览器一顿操作猛如虎
  10. 《鬼谷子本经阴符七术》