Поиск по сайту:

Пример Android ProgressBar


Добро пожаловать в пример Android ProgressBar. Сегодня мы реализуем android ProgressBar в нашем приложении. Существует два типа индикаторов выполнения: горизонтальный и круговой. Мы создадим оба этих индикатора выполнения в приложении для Android.

Android ProgressBar

Android ProgressBar — это графический индикатор, показывающий некоторый прогресс. Индикатор выполнения Android отображает индикатор выполнения задачи. Индикатор выполнения в Android полезен, поскольку он дает пользователю представление о том, сколько времени нужно для завершения задачи. Использование ProgressBar является хорошей практикой взаимодействия с пользователем, поскольку она отображает статус выполнения данной задачи (например, загрузки изображения) для пользователя.

Атрибуты ProgressBar для Android

Некоторые важные атрибуты, используемые для описания ProgressBar, приведены ниже.

  1. android:max: мы можем установить максимальное значение ProgressBar, используя этот атрибут. По умолчанию максимальное значение индикатора выполнения равно 100.
  2. android:indeterminate: логическое значение устанавливается в зависимости от того, является ли время определенным или нет. Установка для этого атрибута значения false покажет фактический прогресс. В противном случае, если установлено значение true, отображается циклическая анимация, показывающая, что происходит прогресс.
  3. android:minHeight : используется для установки высоты ProgressBar
  4. android:minWidth : используется для установки ширины ProgressBar
  5. android:progress: используется для установки числа, на которое будет увеличиваться значение индикатора выполнения.
  6. стиль : по умолчанию индикатор выполнения будет отображаться в виде вращающегося колеса. Если мы хотим, чтобы он отображался в виде горизонтальной полосы, нам нужно установить атрибут как: 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