countdown timer plus_android studio计时器

countdown timer plus_android studio计时器Inthisandroidcountdowntimerexample,we’llimplementatimerobjecttodisplaytheprogressinaProgressBar.Theapplicationwe’llbuildinthistutorialisausefulcomponentinQuizappswhere…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

In this android countdown timer example, we’ll implement a timer object to display the progress in a ProgressBar. The application we’ll build in this tutorial is a useful component in Quiz apps where the time left to complete the level is displayed graphically to enhance the user experience.

在此android countdown计时器示例中,我们将实现一个timer对象以在ProgressBar中显示进度 。 我们将在本教程中构建的应用程序是测验应用程序中的有用组件,其中,完成关卡所需的时间以图形方式显示,以增强用户体验。

Android CountDownTimer (Android CountDownTimer)

Android CountDownTimer class is used to schedule a countdown until a time in the future defined by the user, with regular notifications on intervals along the way. This class is an abstract class whose methods need to be overridden to implement it in our project. The following line needs to be added in our activity to import the class :

Android CountDownTimer类用于安排倒计时,直到用户定义未来的某个时间为止,并定期通知间隔时间。 此类是一个抽象类,其方法必须重写才能在我们的项目中实现。 在我们的活动中需要添加以下行以导入该类:

import android.os.CountDownTimer;

import android.os.CountDownTimer;

The relevant methods of the CountDownTimer Class are given below.

CountDownTimer类的相关方法如下。

  1. synchronized final void cancel() : This is used to cancel the countdown

    synchronized final void cancel() :用于取消倒计时

  2. abstract void onFinish() : This callback method is fired when the timer finishes

    abstract void onFinish() :计时器结束时会触发此回调方法

  3. abstract void onTick(long millisUntilFinished) : This callback method is fired on regular intervals

    abstract void onTick(long millisUntilFinished) :定期触发此回调方法

  4. synchronized final CountDownTimer start() : This method is used to start the countdown

    synchronized final CountDownTimer start() :此方法用于启动倒计时

The signature of the public constructor of the CountDownTimer class is given below.

CountDownTimer类的公共构造函数的签名如下所示。

CountDownTimer(long millisInFuture, long countDownInterval)

CountDownTimer(long millisInFuture, long countDownInterval)

The parameters of the constructors are defined as follows :

构造函数的参数定义如下:

  • millisInFuture : The number of milli seconds in the future from the call to start() until the countdown is done and onFinish() is called

    millisInFuture :从调用start()到倒计时完成并调用onFinish()以后的毫秒数。

  • countDownInterval : The interval along the way to receive onTick(long) callbacks

    countDownInterval :接收onTick(long)回调的时间间隔

In this project we’ll update the time values in a ProgressBar as the onTick() method is invoked repeatedly.

在此项目中,由于onTick()方法被重复调用,我们将更新ProgressBar中的时间值。

Android倒数计时器示例项目结构 (Android Countdown Timer Example Project Structure)

Android倒数计时器代码 (Android Countdown Timer Code)

The activity_main.xml consists of two buttons i.e. the start and stop timer buttons and a ProgressBar to display the time.

activity_main.xml由两个按钮组成,即开始和停止计时器按钮以及用于显示时间的ProgressBar。

activity_main.xml

activity_main.xml

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:max="10"
        android:minHeight="50dp"
        android:minWidth="200dp"
        android:progress="0"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start Timer"
        android:id="@+id/button"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="61dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop Timer"
        android:id="@+id/button2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="46dp"
        android:layout_below="@+id/progressBar" />

</RelativeLayout>

The MainActivity.java is given below :

MainActivity.java如下所示:

package com.journaldev.countdowntimer;

import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    ProgressBar progressBar;
    Button start_timer,stop_timer;
    MyCountDownTimer myCountDownTimer;

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

        progressBar=(ProgressBar)findViewById(R.id.progressBar);
        start_timer=(Button)findViewById(R.id.button);
        stop_timer=(Button)findViewById(R.id.button2);

        start_timer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                myCountDownTimer = new MyCountDownTimer(10000, 1000);
                myCountDownTimer.start();

            }
        });

        stop_timer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                myCountDownTimer.cancel();

            }
        });

    }

    public class MyCountDownTimer extends CountDownTimer {

        public MyCountDownTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        @Override
        public void onTick(long millisUntilFinished) {

            int progress = (int) (millisUntilFinished/1000);

            progressBar.setProgress(progressBar.getMax()-progress);
        }

        @Override
        public void onFinish() {
            finish();
        }
    }
}

In the above code we’ve defined an Anonymous Inner Class called MyCountDownTimer. In this example we’ve set a Timer for 10 seconds that updates after every second. By default the timer displays/updates the time in decreasing order ( as its named CountDown!), Hence to show the progress in increasing order we’ve subtracted the time from the max time.

在上面的代码中,我们定义了一个名为MyCountDownTimer匿名内部类 。 在此示例中,我们将计时器设置为10秒,该计时器每秒钟更新一次。 默认情况下,计时器以降序显示/更新时间(称为CountDown!),因此,为了以升序显示进度,我们从最大时间中减去了时间。

The timer once stopped restarts from the beginning. Below is our android countdown timer app in action.

一旦停止计时器将重新开始。 以下是我们运行中的android倒数计时器应用程序。

This brings an end to countdown timer android tutorial. You can download the final Android CountDownTimer Project from the below link.

这样就结束了倒数计时器Android教程。 您可以从下面的链接下载最终的Android CountDownTimer项目

Reference: Official Documentation

参考: 官方文档

翻译自: https://www.journaldev.com/9896/android-countdowntimer-example

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193419.html原文链接:https://javaforall.net

(0)
上一篇 2025年11月25日 下午9:01
下一篇 2025年11月25日 下午9:43


相关推荐

  • mysql opkg源_opkg包管理工具常用命令[通俗易懂]

    mysql opkg源_opkg包管理工具常用命令[通俗易懂]Opkg是一个轻量快速的套件管理系统,目前已成为Opensource界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。常用命令opkgupdate更新可以获取的软件包列表opkgupgrade对已经安装的软件包升级opkglist获取软件列表opkginstall安装指定的软件包opkgremove卸载已经安装的指定的软件包安装要安装软件…

    2022年6月8日
    36
  • NBNS扫描工具nbtscan-unixwiz

    NBNS扫描工具nbtscan-unixwizNBNS扫描工具nbtscan-unixwizNBNS是NetBIOSNameService的缩写,表示NetBIOS名称解析服务。NETBIOS是一种网络协议,用于实现消息通信和资源共享。利用该服务,可以基于NETBIOS协议获取计算机名称,从而进一步判断共享资源。KaliLinux提供了专用工具nbtscan-unixwiz。它可以直接扫描单个或者多个计算机名称或者IP地址,然后搜索…

    2022年10月21日
    6
  • 常用的微信编辑器

    常用的微信编辑器

    2021年10月12日
    155
  • Nginx和Apache区别

    Nginx和Apache区别

    2021年11月6日
    50
  • SQL中使用SUBSTRING截取字符串「建议收藏」

    SQL中使用SUBSTRING截取字符串「建议收藏」SUBSTRING返回字符、binary、text     或     image     表达式的一部分。有关可与该函数一起使用的有效     Microsoft®     SQL     Server™     数据类型的更多信息,请参见数

    2022年5月23日
    999
  • 电脑显示应用程序无法正常启动_0x0007b

    电脑显示应用程序无法正常启动_0x0007b在使用电脑的时候,我们经常需要使用到不同的应用程序,但是在使用应用程序的时候,也会出现一些问题,比如说应用程序无法正常启动,显示0x000007b,这种情况很多人都不知道如何去处理。其实,应用程序无法正常启动的情况,里面的原因有很多,我们需要针对本次出现的0x000007b代码进行分析解决。而老毛桃也整理出了一份资料,下面就来看一下电脑应用程序无法正常启动提示0x000007b的解决方法吧!方法一…

    2025年7月24日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号