1、布局:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="任务完成的进度"
/>
<ProgressBar
android:id="@+id/bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
style="@android:style/Widget.ProgressBar.Horizontal"//设置进度条为“水平方式”
/>
<ProgressBar
android:id="@+id/bar2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
android:progressDrawable="@drawable/my_bar"// 此处的进度条为”自定义样式“
style="@android:style/Widget.ProgressBar.Horizontal"
/>
2、progressBar的自定义样式,在drawable文件夹中创建 my_bar.xml 文件,资源类型是Resource Type是drawable,根目录是<layer-list>:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background" android:drawable="@drawable/no"></item>// 属性设置”id“ 和 ”图片资源“两项
<item android:id="@android:id/progress" android:drawable="@drawable/ok"></item>
</layer-list>
3、代码实现:
public class MainActivity extends Activity {
private int[] data = new int[100];
int hasdata = 0;
int mProgressStatus = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
final ProgressBar bar = (ProgressBar) this.findViewById(R.id.bar);
final ProgressBar bar2 = (ProgressBar) this.findViewById(R.id.bar2);
final Handler mhandler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 0x111) {
bar.setProgress(mProgressStatus);
bar2.setProgress(mProgressStatus);
}
}
};
new Thread(){
@Override
public void run() {
while(mProgressStatus < 100){
mProgressStatus = dowork();
Message m = new Message();
m.what=0x111;
mhandler.sendMessage(m);
}
}
}.start();
}
public int dowork(){
data[hasdata++] = (int) (Math.random()*100);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
return hasdata;
}
}
1015

被折叠的 条评论
为什么被折叠?



