Android
 Computer >> コンピューター >  >> プログラミング >> Android

Androidでカウントダウンタイマーを作成する方法をわかりやすく解説

Androidのカウントダウンタイマーとは

Androidにおけるカウントダウンタイマーとは、腕時計やスマートフォンでおなじみのように、設定した時間から残り時間を順に減らしていき、時間の完了とともに自動的に停止して0になる仕組みです。

AndroidではCountDownTimerクラスを使用することで、シンプルなコードで簡単にカウントダウンタイマーを実装できます。この記事では、TextViewと連携させてカウントダウンタイマーを表示する方法をステップごとに解説します。

カウントダウンタイマーで使える4つの主要メソッド

カウントダウンタイマーを利用する際には、以下の4つのメソッドが用意されています。

onTick(long millisUntilFinished)

カウントダウンの進行中に一定間隔で呼び出されるメソッドです。残り時間をミリ秒単位で受け取ることができ、カウントが完了するとティック(刻み)が停止します。

onFinish()

カウントダウンが完了した後に呼び出されるメソッドです。終了時に任意のメソッドやコールバックを実行したい場合は、この中に処理を記述します。

start()

カウントダウンタイマーを開始するためのメソッドです。

cancel()

実行中のカウントダウンタイマーをキャンセル(中断)するためのメソッドです。

TextViewと連携したカウントダウンタイマーの実装例

ここからは、実際にカウントダウンタイマーをTextViewに表示させる実装手順を見ていきましょう。

ステップ1:新規プロジェクトの作成

Android Studioを起動し、「File」→「New Project」を選択して、必要事項を入力して新しいプロジェクトを作成します。

ステップ2:レイアウトファイル(activity_main.xml)の編集

res/layout/activity_main.xml に以下のコードを追加します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:id="@+id/layout"
    android:gravity="center"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:id="@+id/counttime"
        android:layout_width="match_parent"
        android:gravity="center"
        android:textSize="30sp"
        android:layout_height="wrap_content" />
</LinearLayout>

上記のコードでは、カウントダウンタイマーの値を表示するためのTextViewを1つ宣言しています。このTextViewにカウントダウンの進行状況が出力されます。

ステップ3:MainActivity.java の編集

src/MainActivity.java に以下のコードを追加します。

package com.example.andy.myapplication;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    public int counter;
    @TargetApi(Build.VERSION_CODES.O)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView counttime=findViewById(R.id.counttime);
        new CountDownTimer(50000,1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                counttime.setText(String.valueOf(counter));
                counter++;
            }
            @Override
            public void onFinish() {
                counttime.setText("Finished");
            }
        }.start();
    }
}

上記のコードでは、総時間を50秒、更新間隔を1秒としてカウントダウンタイマーを宣言しています。onTickメソッド内で経過秒数をTextViewに表示し、すべての時間間隔が完了すると onFinish メソッドによって「Finished」という結果が表示されます。

ステップ4:manifest.xml は変更不要

AndroidManifest.xml に変更を加える必要はありません。

アプリの実行と動作確認

それでは、アプリケーションを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを前提とします。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの実行アイコンAndroidでカウントダウンタイマーを作成する方法をわかりやすく解説 をクリックしてください。接続したモバイルデバイスを選択すると、端末の画面にカウントダウンの表示が現れます。

Androidでカウントダウンタイマーを作成する方法をわかりやすく解説

上の画面では、時間がカウントされていく様子を確認できます。50秒のカウントが完了すると、以下のように最終結果が表示されます。

Androidでカウントダウンタイマーを作成する方法をわかりやすく解説

  1. Androidで線を引く方法とは?Canvasを使った描画手順をステップ解説

    この記事では、Androidアプリで線を描画する方法を、実際のサンプルコードとともにステップごとに解説します。BitmapとCanvasを組み合わせれば、ボタンをタップしたタイミングで画面上に線を簡単に描くことができます。 作成するアプリの概要 今回作成するのは、画面下部の「Draw Line」ボタンを押すと、中央のImageView上に赤い横線が表示されるシンプルなアプリです。レイアウトの定義、MainActivityへの処理の記述、マニフェストファイルの確認という流れで進めていきます。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、「File」→「New P

  2. AndroidアプリでImageViewの角を丸く表示する方法を徹底解説

    はじめに Androidアプリ開発では、プロフィール画像やサムネイルなどの画像の角を丸く表示したい場面がよくあります。角丸の画像を取り入れるだけで、UI全体が柔らかく洗練された印象になります。 本記事では、BitmapShaderとCanvasを活用してImageViewの角を丸く加工する方法を、実際のコード付きでステップ形式に分けて解説します。 手順1:Android Studioで新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目(アプリ名・パッケージ名・保存先など)を入力して、新しいプロジェ