Android 中 progressBar的使用

来源:互联网 发布:单片机pwm模块 编辑:程序博客网 时间:2024/05/19 07:44

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;@Overrideprotected 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(){@Overridepublic void handleMessage(Message msg) {if (msg.what == 0x111) {bar.setProgress(mProgressStatus);bar2.setProgress(mProgressStatus);}}        };        new Thread(){@Overridepublic 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;    }}



0 0