アンドロイドのプログレスバーの例。 (Android no purogressu bā no rei)
Android ProgressBarの例へようこそ。今日は、私たちのアプリケーションにandroidのProgressBarを実装します。プログレスバーには、水平型と円形型の2種類があります。私たちは、androidアプリケーションに両方のプログレスバーを作成します。
Androidのプログレスバー
Androidのプログレスバーは、進捗を示すグラフィカルなビュー表示です。Androidのプログレスバーは、タスクの完了を表すバーを表示します。Androidのプログレスバーは、タスクの完了までの時間をユーザーに示すため、便利です。プログレスバーを使用することは、ユーザーエクスペリエンスの良い実践であり、ユーザーに対して与えられたタスク(例えば、画像のダウンロード)の進捗状況を表示します。
アンドロイドの進捗バーの属性
プログレスバーを説明するために使用されるいくつかの重要な属性は以下の通りです。
-
- android:max : この属性を使用して、プログレスバーの最大値を設定できます。デフォルトではプログレスバーの最大値は100です。
-
- android:indeterminate : 時間が決定的かどうかによって真偽値が設定されます。この属性をfalseに設定すると、実際の進捗が表示されます。もしtrueに設定すると、進捗が発生していることを示す循環アニメーションが表示されます。
-
- android:minHeight : プログレスバーの高さを設定するために使用されます。
-
- android:minWidth : プログレスバーの幅を設定するために使用されます。
-
- android:progress : プログレスバーの値が増加する数を設定するために使用されます。
- style : デフォルトでは、プログレスバーは回転するホイールとして表示されます。水平バーとして表示したい場合は、属性を次のように設定する必要があります:style=”?android:attr/progressBarStyleHorizontal”
このチュートリアルでは、ProgressBarを作成し、スレッド内で値を更新してインクリメントします。値を増やした後、プログレスがゆっくりと表示されるように、スレッドを200ミリ秒スリープさせます。
Androidプログレスバーの例のプロジェクト構造
アンドロイドの進行状況バーのコード
activity_main.xmlには、RelativeLayoutが親ビューとして含まれており、水平のプログレスバーと円形のプログレスバー、そして数値で進捗状況を表示するためのTextViewが含まれています。
<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"
tools:context=".MainActivity" >
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="23dp"
android:layout_marginTop="20dp"
android:indeterminate="false"
android:max="100"
android:minHeight="50dp"
android:minWidth="200dp"
android:progress="1" />
<ProgressBar
android:id="@+id/progressBar_cyclic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="50dp"
android:minWidth="50dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/progressBar"
android:layout_below="@+id/progressBar"/>
</RelativeLayout>
上記のレイアウトでは、水平のプログレスバーの値はandroid:progressで設定された分だけ更新されます。円形のプログレスバーは、アクティビティが停止するまで連続して実行されます。
package com.scdev.progressbar;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private int progressStatus = 0;
private TextView textView;
private Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
textView = (TextView) findViewById(R.id.textView);
// Start long running operation in a background thread
new Thread(new Runnable() {
public void run() {
while (progressStatus < 100) {
progressStatus += 1;
// Update the progress bar and display the
//current value in the text view
handler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressStatus);
textView.setText(progressStatus+"/"+progressBar.getMax());
}
});
try {
// Sleep for 200 milliseconds.
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
}
Androidプログレスバープロジェクトをダウンロードする
参照: developer.android.comのドキュメント