Progress Bar trong Android

Xem: 4301    Tải: 0   Thảo luận: 0   Mục: Android   Lĩnh vực: Khác

0 điểm   ( 6 đánh giá ) File đã được kiểm thử

Trong Android có cung cấp Progress Bar để giúp cho người dùng có thể xem tiến trình của mình đang hoạt động đến đâu, mất bao lâu nữa thì mới kết thúc tiến trình đó. Hôm này tôi xin giới thiệu cơ bản về cách sử dụng Progress Bar trong Android.

1. Xây dựng giao diện.

Ở đây tôi làm đơn giản chỉ có 1 button là Show Progress Bar. Khi click button này sẽ hiển thị Progress Bar lên.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="fill_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity" >
 
<Button
 android:id="@+id/btShow"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"
 android:text="Show Progress Bar" />
 
</LinearLayout>

2. Xử lý code

Mấu chốt của việc sử dụng progress bar là sử dụng thread để chạy thời gian tiến trình hoạt động và thread khác sẽ cập nhật trạng thái của progress bar cho nó phù hợp.

Các bạn xem code sau đây và để ý các dòng comment trong code để hiểu rõ hơn.

package com.example.progressbardemo;
 
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class MainActivity extends Activity {
private Button btShow;
ProgressDialog progressBar;
private int progressBarStatus = 0;
private Handler progressBarHandler = new Handler();
 
private long fileSize = 0;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 btShow = (Button) findViewById(R.id.btShow);
 btShow.setOnClickListener(new OnClickListener() {
 
 @Override
 public void onClick(View v) {
 // TODO Auto-generated method stub
 progressBar = new ProgressDialog(v.getContext());
 progressBar.setCancelable(true);
 progressBar.setMessage("File downloading ...");
 progressBar.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
 progressBar.setProgress(0);
 progressBar.setMax(100);
 progressBar.show();
 
 //reset trạng thái của progressbar
 progressBarStatus = 0;
 
 //reset filesize
 fileSize = 0;
 
 new Thread(new Runnable() {
 public void run() {
 while (progressBarStatus < 100) {
 progressBarStatus = doSomeTasks();
 
 // dừng 1 giây
 try {
 Thread.sleep(1000);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 
 // cập nhật progress bar
 progressBarHandler.post(new Runnable() {
 public void run() {
 progressBar.setProgress(progressBarStatus);
 }
 });
 }
 
 // file downloaded,
 if (progressBarStatus >= 100) {
 
 // dừng lại 2 giây nhưng vẫn hiển thị là 100%
 try {
 Thread.sleep(2000);
 } catch (InterruptedException e) {
 e.printStackTrace();
 }
 
 // đóng progress bar
 progressBar.dismiss();
 }
 }
 }).start();
 
 }
 
 });
 
 }
 // tải 1 file ví dụ đơn giản :
 public int doSomeTasks() {
 
 while (fileSize <= 1000) {
 
 fileSize++;
 
 if (fileSize == 100) {
 return 10;
 } else if (fileSize == 2000) {
 return 20;
 } else if (fileSize == 3000) {
 return 30;
 }
 }
 
 return 100;
 }
 
&nbsp;
 
@Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.main, menu);
 return true;
 }
 
}

Progress Bar trong Android

Progress Bar trong Android Đăng ngày 11-02-2014  Trong Android có cung cấp Progress Bar để giúp cho người dùng có thể xem tiến trình của mình đang hoạt động đến đâu, mất bao lâu nữa thì mới kết thúc tiến trình đó. Hôm này tôi xin giới thiệu cơ bản về cách sử dụng Progress Bar trong Android. 5/10 4301

Thảo luận:

Để bình luận bạn phải đăng nhập thành viên.

File tương tự

Files cùng mục

 
Hỗ trợ kỹ thuật cho thành viên:
Tổng đài: (+84) 246. 32.979.36
Số di động (Hotline): 0969.091.265
Thời gian làm việc:
Sáng: 8h-12h; Chiều: 13h30-17h30
(Nghỉ chiều T7, CN và các ngày lễ, tết)
Chat với Megacode
https://www.facebook.com/megacodevn
File gợi ý cho bạn
File tải nhiều nhất
Megacode.vn - Thư viện mã nguồn chia sẻ, tải file cho cộng đồng
Copyright © 2013-2016. All rights reserved. Bản quyền thuộc VinaGon
Địa chỉ: Số 38 Hàng Bè, Hàng Bạc, Hoàn Kiếm, Hà Nội.
Văn phòng giao dịch: Phòng 28, Tầng 6, HH1A Linh Đàm, Hoàng Mai, Hà Nội
Email: info@vinagon.com | Website: www.vinagon.com | Điện thoại: (+844) 6. 32.979.36;