CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Mục lục

Trang chủBlogCách tạo ProgressBar tron...
Android

Cách tạo ProgressBar trong Android

3 phút đọc23/09/2025
CyStack Author
Chris Pham

Technical Writer

0 lượt xem
Reading Time: 3 minutes

Có hai loại ProgressBar trong Android: Horizontal và Circular. Hôm nay, chúng ta sẽ triển khai cả hai loại này.

ProgressBar trong Android

ProgressBar trong Android

ProgressBar là một thành phần đồ họa dùng để hiển thị mức độ hoàn thành của một tác vụ nào đó dưới dạng một thanh tiến trình. Nó cho người dùng biết được khoảng thời gian cần thiết để hoàn thành công việc. Sử dụng ProgressBar là một cách làm hay để cải thiện trải nghiệm người dùng, vì nó hiển thị trạng thái của một tác vụ đang chạy (ví dụ như tải một hình ảnh).

Các thuộc tính của ProgressBar

Dưới đây là một số thuộc tính quan trọng dùng để định nghĩa một ProgressBar.

  1. android:max: Ta có thể dùng thuộc tính này để đặt giá trị tối đa cho ProgressBar. Mặc định, giá trị tối đa của progress bar là 100.
  2. android:indeterminate: Thuộc tính này nhận một giá trị boolean tùy thuộc vào tính determinate (có thể biết trước được điểm kết thúc hoặc tổng thời lượng) của tiến trình. Nếu đặt là false, ProgressBar sẽ hiển thị tiến độ thực tế. Ngược lại, nếu là true, Android sẽ hiển thị một hiệu ứng động lặp lại theo chu kỳ để cho biết tác vụ đang diễn ra.
  3. android:minHeight: Dùng để đặt chiều cao cho ProgressBar.
  4. android:minWidth: Dùng để đặt chiều rộng cho ProgressBar.
  5. android:progress: Dùng để thiết lập giá trị mà ProgressBar sẽ tăng lên sau mỗi lần cập nhật.
  6. style: Mặc định, ProgressBar sẽ hiển thị dưới dạng một vòng xoay. Nếu muốn hiển thị dưới dạng thanh ngang, ta cần đặt thuộc tính style như sau: style="?android:attr/progressBarStyleHorizontal".

Trong bài hướng dẫn này, chúng ta sẽ tạo một ProgressBar và tăng giá trị của nó thông qua việc cập nhật bên trong một thread. Ta sẽ cho thread tạm dừng (sleep) 200 mili giây sau mỗi lần tăng giá trị để bạn có thể thấy rõ tiến trình.

Cấu trúc của ví dụ mẫu

Cấu trúc ứng dụng ví dụ sử dụng ProgressBar trong Android

Dự án này bao gồm một Activity và layout duy nhất chứa cả hai loại ProgressBar.

Code ví dụ

File activity_main.xml có một RelativeLayout làm view cha, bên trong chứa một ProgressBar dạng ngang và một ProgressBar dạng tròn, cùng với một TextView để hiển thị tiến độ dưới dạng số.



    

    

    


Trong layout trên, giá trị của progress bar ngang sẽ tăng thêm 1 sau mỗi lần cập nhật, như đã thiết lập trong android:progress. Progress bar tròn sẽ chạy liên tục cho đến khi activity dừng lại.

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();
    }
}

Trong đoạn code trên, progressBar sẽ cập nhật sau mỗi 200 mili giây và các cập nhật này được thiết lập bằng setProgress(). Ta sử dụng một Handler (class của Android để quản lý các Message hoặc Runnable trong một thread) để chạy thread nền. Thread này sẽ chạy cho đến khi giá trị progressStatus đạt 100. Hình ảnh dưới đây minh họa kết quả của ứng dụng khi chạy.

Ứng dụng ví dụ sử dụng ProgressBar trong Android

Tổng kết

Như vậy, trong bài hướng dẫn này, chúng ta đã tạo một ProgressBar trong Android. Bạn có thể tải về toàn bộ ví dụ mẫu tại link này. Trong một bài hướng dẫn sau, chúng ta sẽ tìm hiểu cách thêm ProgressBar vào ProgressDialog trong trường hợp bạn cần làm nổi bật thông tin tiến độ tác vụ hơn nữa.

Về tác giả

Chris Pham
Chris PhamTechnical Writer

I have over 5 years of experience writing technical documentation for tech products, making them accessible and user-friendly. My focus is always on providing clear and precise information. @#@ Tôi đã có hơn 5 năm kinh nghiệm viết tài liệu kỹ thuật cho các sản phẩm công nghệ, giúp người dùng dễ dàng tiếp cận và sử dụng. Tôi luôn tập trung vào việc cung cấp thông tin chính xác và dễ hiểu.

Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn

Thảo luận (0)

Đăng nhập để thảo luận

Bài viết liên quan