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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstome2021激活码[在线序列号]

    phpstome2021激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    46
  • windows server 禁用智能卡服务的步骤

    windows server 禁用智能卡服务的步骤许多用户对于系统中的很多功能都不太了解,其中智能卡服务更是少有人知。智能卡服务就是对插入的智能卡进行管理和访问控制,大多数用户都无需使用此项功能。那么在Win7系统中要怎么取消智能卡服务呢?1.首先

    2022年7月1日
    29
  • onedrive免费版容量_onedrive永久1t申请

    onedrive免费版容量_onedrive永久1t申请1、打开:http://get365.pw在右上角可以看到临时邮箱的地址复制地址朋友们记得保存地址是登录的账号,(获得临时邮箱地址之后不要关闭页面等下还要获取验证码)2、然后打开https://signup.microsoft.com/signup?sku=student输入临时邮箱地址3、填写信息验证码(验证码打开临时邮箱的页面查看,第一步打开的那个界面,下方可以查看接收到的邮

    2022年9月10日
    0
  • scrollHeight、scrollTop等的比较[通俗易懂]

    scrollHeight、scrollTop等的比较[通俗易懂]自接触js以来一直使用的是jquery插件,对js的了解甚少,经常容易混淆element.scrollHeight、element.scrollTop等方法。今天对这些方法做出比较。scrollTop:可以设置或者获取元素的已滚动的上部不可见区域的高度。<!DOCTYPEhtml><html><head><title&gt…

    2022年7月23日
    6
  • 拥有你是我一生的追求

    拥有你是我一生的追求

    2021年8月10日
    44
  • fftw_fftw3

    fftw_fftw3http://wenku.baidu.com/link?url=3TS6UqnYfVxGpVBfJIIgxjjcXCKuW9NvklxfBLZaIdWJhY0HrpUSKyyuIHsNI2s4F9tSUOhP7pl7n5PLlSFvWqQdr6XvtpejqQenhJHJ9N7

    2022年10月22日
    0

发表回复

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

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