Android: ProgressBar trong Android


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Progress Bar được sử dụng để hiển thị tiến trình của một tác vụ. Ví dụ, khi bạn upload hoặc download từ internet thì thanh tiến trình sẽ giúp người dùng dễ theo dõi quá trình đó hơn.

Lớp ProgressBar cung cấp một số phương thức được liệt kê trong bảng dưới đây:

Stt Miêu tả
1 getMax()

Phương thức này trả về giá trị lớn nhất của tiến trình

2 incrementProgressBy(int diff)

Phương thức này tăng (lượng gia) thanh tiến trình bởi các giá trị khác nhau được truyền như là một tham số

3 setIndeterminate(boolean indeterminate)

Phương thức này thiết lập indicator cho tiến trình dạng determinate hoặc indeterminate

4 setMax(int max)

Thiết lập giá trị lớn nhất của Progress Dialog

5 setProgress(int value)

Được sử dụng để cập nhật Progress Dialog với một số giá trị cụ thể

6 show(Context context, CharSequence title, CharSequence message)

Đây là một phương thức static, được sử dụng để hiển thị Progress Dialog

Ví dụ

Ví dụ sau minh họa Progress Dialog với chiều ngang. Để thử nghiệm ví dụ này, bạn cần chạy nó trên một thiết bị thực sự sau khi phát triển ứng dụng theo các bước như dưới đây.

To experiment with this example, you need to run this on an actual device after developing the application according to the steps below.

Bước Miêu tả
1 Bạn sử dụng Android Studio để tạo một ứng dụng Android dưới một package là com.example.sairamkrishna.myapplication. Trong khi tạo project này, đảm bảo Target SDK và Compile With ở phiên bản Android SDK mới nhất để sử dụng API cấp độ cao hơn
2 Sửa đổi src/MainActivity.java file để thêm code hiển thị progress dialog
3 Sửa đổi res/layout/activity_main.xml file để thêm XML code
4 Chạy ứng dụng và chọn một thiết bị Android và cài đặt ứng dụng trên đó rồi kiểm tra kết quả

Sửa đổi nội dung của res/layout/activity_main.xml thành:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textColor="#4CAF50"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.057" />

    <ImageView
        android:id="@+id/textView"
        android:layout_width="170dp"
        android:layout_height="170dp"
        android:contentDescription="@string/logo_v1study"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.204"
        app:srcCompat="@drawable/logo_v1_regular" />

    <Button
        android:id="@+id/btnDownload"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="download"
        android:text="@string/download"
        android:textColor="#4CAF50"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.484" />

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.636" />

</androidx.constraintlayout.widget.ConstraintLayout>

 

Sau đây là nội dung của Main Activity file đã được sửa đổi: src/MainActivity.java.

package v1study.com.progressbar;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

    Button btn;
    ProgressBar progressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void download(View view) {
        btn=(Button)findViewById(R.id.btnDownload);
        progressBar=(ProgressBar)findViewById(R.id.progressBar);
        progressBar.setProgress(0);
        final int totalProgressTime=100;
        final Thread thread=new Thread(){
          @Override
          public void run(){
              int jumpTime=0;
              while (jumpTime<totalProgressTime){
                  try{
                      sleep(200);
                      jumpTime+=5;
                      progressBar.setProgress(jumpTime);
//                      Hoặc:
//                      progressBar.incrementProgressBy(5);
                  } catch (InterruptedException e) {
                      e.printStackTrace();
                  }
              }
          }
        };
        thread.start();
    }
}

Chạy ứng dụng:

Progressbar trong Android

Nhấn nút Download để bắt đầu Progress Bar:

Progressbar trong Android

Nó sẽ tự động cập nhật tiến trình.

» Tiếp: Spinner trong Android
« Trước: CheckBox trong Android
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!