Vâng, API level 26
nó không được dùng nữa. Thay vào đó, bạn có thể sử dụng progressBar
.
Để tạo nó theo chương trình:
Đầu tiên hãy tham khảo bố cục gốc
RelativeLayout layout = findViewById(R.id.display); //specify here Root layout Id
hoặc là
RelativeLayout layout = findViewById(this);
Sau đó thêm thanh tiến trình
progressBar = new ProgressBar(youractivity.this, null, android.R.attr.progressBarStyleLarge);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100, 100);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
layout.addView(progressBar, params);
Để hiển thị thanh tiến trình
progressBar.setVisibility(View.VISIBLE);
Để ẩn thanh tiến trình
progressBar.setVisibility(View.GONE);
Để vô hiệu hóa tương tác người dùng, bạn chỉ cần thêm đoạn mã sau
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Để lấy lại tương tác người dùng, bạn chỉ cần thêm đoạn mã sau
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
Chỉ để tham khảo trong tương lai, thay đổi android.R.attr.progressBarStyleSmall
thành android.R.attr.progressBarStyleHorizontal
.
Mã dưới đây chỉ hoạt động ở trên API level 21
progressBar.setProgressTintList(ColorStateList.valueOf(Color.RED));
Để tạo nó thông qua xml:
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="true"
android:max="100"
android:backgroundTint="@color/white"
android:layout_below="@+id/framelauout"
android:indeterminateTint="#1a09d6"
android:layout_marginTop="-7dp"/>
Trong hoạt động của bạn
progressBar = (ProgressBar) findViewById(R.id.progressbar);
Hiển thị / ẩn thanh tiến trình là như nhau
progressBar.setVisibility(View.VISIBLE); // To show the ProgressBar
progressBar.setVisibility(View.INVISIBLE); // To hide the ProgressBar
Đây là một hình ảnh mẫu của nó sẽ trông như thế nào:
Để biết thêm chi tiết:
1. Tham khảo một
2. Tham khảo Hai