进度条ProgressBar的功能和用法
通过style属性可以为progressBar指风格
ProgressBar提供如下方法操作进度的完成百分比
setProgress(int)设置进度的完成百分比
incrementProgressBy(int)设置进度条的进度增加和减少,正为增加,负为减少。
package com.example.bao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.net.wifi.WifiEnterpriseConfig.Eap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AbsListView;
import android.widget.AdapterViewFlipper;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.StackView;
import android.widget.TextView;
import android.os.Build;
public class MainActivity extends Activity {
// 该程序模拟填充长度100的数组
private int[] data = new int[100];
int hasData = 0;
// 记录ProgressBar的完成进度
int status = 0;
ProgressBar pb1, pb2;
// 创建一个负责更新的进度Handler
Handler handler = new Handler() {
public void handleMessage(Message msg) {
// 表明消息是由该程序发送的
if (msg.what == 0x11) {
pb1.setProgress(status);
pb2.setProgress(status);
}
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
pb1 = (ProgressBar) findViewById(R.id.bar);
pb2 = (ProgressBar) findViewById(R.id.bar2);
// 启动线程来执行任务
new Thread() {
public void run() {
while (status < 100) {
// 获取耗时操作的完成百分比
status = dowork();
// 发送消息
handler.sendEmptyMessage(0x11);
}
}
}.start();
}
// 模拟耗时操作
public int dowork() {
// 为数组元素赋值
data[hasData++] = (int) (Math.random() * 100);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
return hasData;
}
}
android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > style="@android:style/Widget.ProgressBar.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" /> android:layout_width="wrap_content" android:layout_height="wrap_content" /> style="@android:style/Widget.ProgressBar.Small" android:layout_width="wrap_content" android:layout_height="wrap_content" /> android:layout_width="match_parent" android:layout_height="wrap_content" android:text="任务完成进度" /> android:id="@+id/bar" style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" /> android:id="@+id/bar2" style="@android:style/Widget.ProgressBar.Horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progressDrawable="@drawable/my_bar" />
android:id="@android:id/background" android:drawable="@drawable/mia4">
android:id="@android:id/progress" android:drawable="@drawable/mia2">