代码

使用控件Chronometer即可实现,很简单

xml布局

先看xml布局,有两个button,一个Chronometer控件和一个提示录制状态的TextView空间

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center"android:orientation="vertical"android:background="@drawable/pic4"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="300dp"android:orientation="vertical"android:gravity="center"><TextViewandroid:id="@+id/text1"android:layout_width="match_parent"android:layout_height="100dp"android:gravity="center"android:text="正在录音"android:textSize="35dp"android:textColor="#000000"android:visibility="invisible"/><Chronometerandroid:layout_width="match_parent"android:layout_height="200dp"android:format="00:00:00"android:gravity="center"android:textSize="70dp"android:id="@+id/timer"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:layout_gravity="center"><Buttonandroid:id="@+id/start"android:layout_width="120dp"android:layout_height="60dp"android:layout_gravity="center"android:text="开始"android:textStyle="bold"android:layout_marginTop="10dp"android:background="@drawable/bt_shape"android:textColor="#000000"android:onClick="start"></Button><Buttonandroid:id="@+id/stop"android:layout_width="120dp"android:layout_height="60dp"android:layout_gravity="center"android:text="停止"android:layout_marginTop="10dp"android:background="@drawable/bt_shape"android:textColor="#000000"android:textStyle="bold"android:onClick="stop"android:visibility="invisible"></Button></LinearLayout>
</LinearLayout>

java控制代码

package com.example.myaudiorecorder;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.Chronometer;
import android.view.View;
import android.os.SystemClock;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private Chronometer timer;private int state;//是否已经开始录音,0-停止,1-开始,2-暂停private Button startButtom;private Button stopButton;private TextView note;private static  long elaspedTime = 0;//继续暂停时间,方便暂停后继续计时@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);timer = (Chronometer) findViewById(R.id.timer);startButtom= (Button)findViewById(R.id.start);stopButton=(Button)findViewById(R.id.stop) ;note =(TextView)findViewById(R.id.text1);state=0;}public void start(View view){//stopButton.setEnabled(true);stopButton.setVisibility(View.VISIBLE);//设置停止按钮可见if(state==0){//开始录音state=1;startButtom.setText("暂停");timer.setBase(SystemClock.elapsedRealtime());//计时器清零int hour = (int) ((SystemClock.elapsedRealtime() - timer.getBase()) / 1000 / 3600);timer.setFormat("0"+String.valueOf(hour)+":%s");//Log.d("start:",String.valueOf(SystemClock.elapsedRealtime() - timer.getBase()));timer.start();note.setVisibility(View.VISIBLE);}else if(state==1){//点击了暂停timer.stop();//Log.d("pause:",String.valueOf(SystemClock.elapsedRealtime() - timer.getBase()));//保存暂停时间,方便后续继续开始,时间不会错elaspedTime = SystemClock.elapsedRealtime()-timer.getBase();state=2;startButtom.setText("开始");note.setText("已暂停");//提示栏}else {//暂停后重新开始//重新设置基准timer.setBase(SystemClock.elapsedRealtime()-elaspedTime);int hour = (int) ((SystemClock.elapsedRealtime() - timer.getBase()) / 1000 / 3600);timer.setFormat("0"+String.valueOf(hour)+":%s");//Log.d("restart:",String.valueOf(SystemClock.elapsedRealtime() - timer.getBase()));timer.start();state=1;startButtom.setText("暂停");note.setText("正在录音");//提示栏}}public void stop(View view){elaspedTime=0;state=0;startButtom.setText("开始");stopButton.setVisibility(View.INVISIBLE);//同时设置停止按钮不可见note.setVisibility(View.INVISIBLE);timer.setBase(SystemClock.elapsedRealtime());//计时器清零timer.setFormat("00:%s");timer.stop();}}

效果图

开始计时前只有一个开始按钮

开始计时后,弹出“停止”按钮可停止计时,同时“开始”按钮变为“暂停”按钮

android实现可暂停/继续的计时器相关推荐

  1. 安卓Android 直播点赞爱心特效,计时器

    点赞特效,上图: 首先忽略这画质和抠脚的交互效果,首先需求就是 实现类似抖音的点赞效果 飘小心心的效果,UI的方案是做成了gif图,但是这种东西做成gif太low了,于是就有了想法,这边记录一下: 首 ...

  2. Android 实现能够暂停的录音功能

    转载请注明出处:http://blog.csdn.net/yegongheng/article/details/40624267 好久没更新博客了,着实有点惭愧,以后不管工作是忙是闲都得坚持更新博客, ...

  3. Android实战第一篇——时钟+闹钟+计时器+秒表

    学习了快一学期的Android了,之前的知识点都是零散的学习的,只有当我们真正的去把他们用起来的时候才会发现难点,自己才会独立尝试去解决某个问题.接下来是我的一个简单的多功能时钟的小实战(视频资源ht ...

  4. android 全屏倒计时,全屏计时器app

    全屏计时器app是一款相当简洁的手机软件,主要作用就是可以全屏显示时间,而且软件完全没广告免费体验,相当的方便,软件十分炫酷,还有各种铃声可以选择,可以自定义,相当好用.它是专门为学生量身打造的写作业 ...

  5. android手机时钟、闹钟、计时器、秒表app源码

    简 介 此多功能闹钟界面采用TabHost框架,头部包含分别用LinearLayout水平布局显示四个标签闹钟,时钟,计时器和秒表,FrameLayout框架内部采用LinearLayout垂直布局. ...

  6. android开机动画 暂停,修改build.prop,停在开机画面。求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是备份 # begin build properties # autogenerated by buildinfo.sh ro.build.id=JDQ ...

  7. android跑马灯会暂停,Android之跑马灯失焦停止问题

    要TextView 实现跑马灯效果的话,我们只需要关注5个属性即可 第一个是要单行显示 第二个是单行显示多余部分如何显示,即 ellipsize 属性的设置 第三个是获取焦点 第四个是走马灯重复次数 ...

  8. java 停止定时器_Java/Android计时器(开始,暂停,恢复,停止)

    由于要做暂停和恢复,这里我就没有使用Android的CountDownTimer,而是用了Java的Timer.所以,这个方法在java肯定是通用.我也外加了Android独有的Service,有些计 ...

  9. android开发——分秒计时器(可 开始/暂停/继续/停止)

    最近在项目开发过程中,由于需要设计一个计时器的功能.所以在这里分享一个TimeUtils.可以实现 暂停/继续 的计时器: 话不多说,先看一下TimeUtils这个工具类: package cn.co ...

最新文章

  1. Mysql 递归获取多重数组数据
  2. PG数据向Kingbase移植
  3. nagios全攻略(一)----准备阶段
  4. HDU - 2255 奔小康赚大钱(二分图最大权匹配+KM)
  5. (19)HTML5 <progress> 标签
  6. mysql视图应用_MySQL视图的概念与实际应用
  7. Eclipse用法和技巧十六:自动添加未实现方法2
  8. android word文件编辑器,AndroDOC Doc&Word的编辑器
  9. 【论文阅读】Generalization in Reinforcement Learning
  10. 关于word-break和word-wrap的使用和区别
  11. 深度学习项目部署遇到的错误【记录】
  12. 常看的几个网站:推荐给大家
  13. STOP 0X00000018关机蓝屏重启问题
  14. AMiner背后的技术细节与挑战
  15. 3199. 命令行选项
  16. python抓取小红书_小红书很难爬?最新爬取方法教给你啦~
  17. 网络面试题:字节序?网络字节序和主机字节序?
  18. C语言#define的用法,C语言宏定义
  19. VSS、VDD、VCC区别
  20. imx6ull项目也是封装成脚本安装 Poky 交叉编译工具链类似ATK-STM32MP157交叉编译

热门文章

  1. css3圣诞节喜庆文字祝福代码
  2. TOF,双目,结构光,激光雷达等传感器及相关技术
  3. JavaScript基础知识总结复习(一)
  4. 推荐几个2023年比较好用的youtube转换器
  5. 回归测试概念和4种回归测试策略——你想知道的都在这里啦!
  6. 高三c语言程序设计计划,《C语言程序设计》教学计划.doc
  7. 组合投资分配的方法——【七二一】原则
  8. 从 DP 到 DDP 到 apex
  9. 【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)...
  10. 攻防世界 web高手进阶区 10分题 weiphp