Android学习笔记(十二):简单UI组件----日期时间类组件(计时器Chronometer)

日期时间类组件(计时器Chronometer)

  1. 计时器:用于计时的组件。显示一串文本,文本用于显示从某个时间段开始到现在一共过去了多长时间。
    在这里插入图片描述
    在activity_main.xml文件中,用Chronometer标签来定义计时器。
    在这里插入图片描述
  2. 属性:
  • android:layout_width和android:layout_height :设置为wrap_content,即包裹其自身内容。
  • android:format :设置显示格式。
    计时器默认的格式是以时分秒的格式(%s)显示时间。可以通过这个属性改:
    在这里插入图片描述
    在这里插入图片描述
  1. 常用方法:
  • setBase() :设置计时器的起始时间。
  • setFormat() :设置计时器的显示格式。
  • start() :指定开始计时。
  • stop() :指定结束计时。
  • setOnChronometerTickListener() :为计时器绑定事件监听器,当计时器改变时触发该监听器。

示例:
设置一个计时器,当计时60秒时显示”60s已用完“:
先为计时器定义一个id:
在这里插入图片描述
再在java文件中进行如下操作:

package com.example.timepickerdemo2;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.os.SystemClock;
import android.widget.Chronometer;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    //定义一个计时器
    private Chronometer chronometer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取计时器
        chronometer=findViewById(R.id.chronometer);
        //设置计时器的起始时间为当前系统的时间
        //通过SystemClock.elapsedRealtime()来获取当前系统的时间
        chronometer.setBase(SystemClock.elapsedRealtime());
        //设置计时器显示时间格式
        chronometer.setFormat("%s");
        //开始计时
        chronometer.start();
        //设置事件监听器
        chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
            @Override
            public void onChronometerTick(Chronometer chronometer) {
                //判断计时器是否计时超过60秒
                if(SystemClock.elapsedRealtime()-chronometer.getBase()>=60000){
                    //超过则停止计时,并显示60s已用完
                    chronometer.stop();
                    Toast.makeText(MainActivity.this,"60s已用完",Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

运行结果:
刚运行时从00:00开始计时:
在这里插入图片描述
计时到16秒:在这里插入图片描述
计时到60秒,显示”60s已用完“:
在这里插入图片描述

发布了26 篇原创文章 · 获赞 9 · 访问量 5164

猜你喜欢

转载自blog.csdn.net/weixin_44480874/article/details/104247212