Пример Android ProgressBar
Добро пожаловать в пример Android ProgressBar. Сегодня мы реализуем android ProgressBar
в нашем приложении. Существует два типа индикаторов выполнения: горизонтальный и круговой. Мы создадим оба этих индикатора выполнения в приложении для Android.
Android ProgressBar
Android ProgressBar — это графический индикатор, показывающий некоторый прогресс. Индикатор выполнения Android отображает индикатор выполнения задачи. Индикатор выполнения в Android полезен, поскольку он дает пользователю представление о том, сколько времени нужно для завершения задачи. Использование ProgressBar
является хорошей практикой взаимодействия с пользователем, поскольку она отображает статус выполнения данной задачи (например, загрузки изображения) для пользователя.
Атрибуты ProgressBar для Android
Некоторые важные атрибуты, используемые для описания ProgressBar
, приведены ниже.
android:max
: мы можем установить максимальное значение ProgressBar, используя этот атрибут. По умолчанию максимальное значение индикатора выполнения равно 100.android:indeterminate
: логическое значение устанавливается в зависимости от того, является ли время определенным или нет. Установка для этого атрибута значения false покажет фактический прогресс. В противном случае, если установлено значение true, отображается циклическая анимация, показывающая, что происходит прогресс.android:minHeight
: используется для установки высоты ProgressBarandroid:minWidth
: используется для установки ширины ProgressBarandroid:progress
: используется для установки числа, на которое будет увеличиваться значение индикатора выполнения.стиль
: по умолчанию индикатор выполнения будет отображаться в виде вращающегося колеса. Если мы хотим, чтобы он отображался в виде горизонтальной полосы, нам нужно установить атрибут как: style=\?android:attr/progressBarStyleHorizontal”
В этом уроке мы создадим ProgressBar и увеличим его значения путем обновления внутри потока. Мы заставим поток спать на 200 миллисекунд после увеличения значений, чтобы медленно отображать прогресс.
Пример структуры проекта Android Progress Bar
Штрих-код выполнения Android
Activity_main.xml содержит RelativeLayout в качестве родительского представления, которое содержит Horizontal ProgressBar и Circular вместе с TextView для отображения прогресса в числовом выражении. 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"
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.journaldev.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 ProgressBar
Ссылка: документ developer.android.com