前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计时器

计时器

作者头像
李小白是一只喵
发布2020-04-24 08:43:54
2.3K0
发布2020-04-24 08:43:54
举报
文章被收录于专栏:算法微时光算法微时光

image.png

目录

chronometer

计时器chronometer继承自TextView,显示的是从一个起始时间开始,一共过去了多长时间。

属性只有一个format,用于指定计时器的计时格式。

xml文件中的形式:

代码语言:javascript
复制
    <Chronometer
        android:id="@+id/test"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:textSize="12pt"
        android:textColor="#ffff0000"/>

对应的API

Chronometer的用法很简单,它支持如下用法:

函数

描述

getBase()

返回时间。

setBase(long base)

设置计时器的起始时间。

start()

开始计时。

stop()

停止计时。

setFormat(String format)

设置显示时间的格式。

setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener)

为计时器绑定监听事件。

实战

xml文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Chronometer
        android:id="@+id/chronometer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="178dp"
        android:layout_marginLeft="178dp"
        android:layout_marginEnd="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginBottom="475dp"
        android:focusable="true"
        android:textColor="#ff0303"
        android:textSize="12pt"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/start"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="463dp"
        android:text="启动"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/chronometer"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

代码文件:

代码语言:javascript
复制
package com.example.user.stopwatch;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.widget.Button;
import android.widget.Chronometer;
import android.view.View;
import android.os.SystemClock;

public class MainActivity extends AppCompatActivity {
    Chronometer ch ;
    Button  start ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取计时器组件
        ch=(Chronometer)findViewById(R.id.chronometer);
        // 获取开始组件
        start = (Button)findViewById(R.id.start);

        // 开始按钮的响应函数
        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //设置开始计时时间
                ch.setBase(SystemClock.elapsedRealtime());
                //启动计时器
                ch.start();
                //按钮无效
                start.setEnabled(false);
            }
        });

        //计时器绑定监听事件
        ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener()
        {
            @Override
            public void onChronometerTick(Chronometer ch)
            {
                // 如果从开始计时到现在超过了60s
                if (SystemClock.elapsedRealtime() - ch.getBase() > 60 * 1000)
                {
                    ch.stop();
                    start.setEnabled(true);
                }
            }
        });
    }
}

执行效果

image.png

image.png

注意:计时器的效果是累加计时器,倒计时效果可以设定,不过貌似只支持android N以上版本.

参考

计时器(Chronometer)的使用 android中计时器chronometer

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • chronometer
  • 对应的API
  • 实战
  • 执行效果
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档