当前位置: 代码迷 >> Android >> 带进度条的Button范例
  详细解决方案

带进度条的Button范例

热度:62   发布时间:2016-04-28 04:13:27.0
带进度条的Button实例
看着是个按钮,其实它是个进度条,这个实例比较简单,就是使用一个handler每隔一段时间发送消息,进度条前进5%,直到100%。
界面布局:
如图所示:
 

xml布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:paddingBottom="@dimen/activity_vertical_margin"
      android:paddingLeft="@dimen/activity_horizontal_margin"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      tools:context=".MainActivity" >

<TextView
     android:id="@+id/text"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="带有进度条的Button" />

<RelativeLayout
     android:layout_width="fill_parent"
     android:layout_height="50dp"
     android:layout_centerHorizontal="true"
     android:layout_centerVertical="true"
     android:gravity="bottom" >

<ProgressBar
     android:id="@+id/progressBar"
     style="?android:attr/progressBarStyleHorizontal"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="@drawable/aa_button_gray_normal"
     android:max="100"
     android:progress="0"
     android:progressDrawable="@drawable/progress_selector" />

<Button
    android:id="@+id/downLoadBtn"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:background="@drawable/btn_selector"
    android:text="下载" />
</RelativeLayout>

</RelativeLayout>




代码实现:
点击按钮后不断通过handler发送消息,一直到进度条达到100%的时候停止。
 
 
代码:

Handler handler = new Handler() {
     public void handleMessage(android.os.Message msg) {
          switch (msg.what) {
              case 1:
                    i += 5;
                    progressBar.setProgress(i);
                    if (i != 100) {
                          handler.sendEmptyMessageDelayed(new Message().what = 1, 500);
                          downLoadBtn.setText(i + "%");
                    } else if (i == 100) {
                          downLoadBtn.setText("下载完成");
                    }
                    break;
 
             default:
                    break;
          }
     };
};




源码下载:点击下载
------解决方案--------------------
骚年,你还年轻。说实话,这里不适合你,整个论坛都是我小号,我只是看你可怜所以不断的换ID来回复你,满足一下你的虚荣心。
你要不相信,我再换个ID跟你说同样的话。 ......................不要不相信,不信你接着看。。。。。。
------解决方案--------------------
把Button的background设置成一个level drawable不就行了
  相关解决方案