Android 中带有进度条效果的按钮(Button)

安卓中带有进度条效果的按钮,如下图:

1.布局文件如下activity_main.xml

复制代码
 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 
11     <TextView
12         android:id="@+id/text"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:text="带有进度条的Button" />
16 
17     <RelativeLayout
18         android:layout_width="fill_parent"
19         android:layout_height="50dp"
20         android:layout_centerHorizontal="true"
21         android:layout_centerVertical="true"
22         android:gravity="bottom" >
23 
24         <ProgressBar
25             android:id="@+id/progressBar"
26             style="?android:attr/progressBarStyleHorizontal"
27             android:layout_width="fill_parent"
28             android:layout_height="fill_parent"
29             android:background="@drawable/aa_button_gray_normal"
30             android:max="100"
31             android:progress="0"
32             android:progressDrawable="@drawable/progress_selector" />
33 
34         <Button
35             android:id="@+id/downLoadBtn"
36             android:layout_width="fill_parent"
37             android:layout_height="fill_parent"
38             android:layout_centerHorizontal="true"
39             android:layout_centerVertical="true"
40             android:background="@drawable/btn_selector"
41             android:text="下载" />
42     </RelativeLayout>
43 
44 </RelativeLayout>
复制代码

 

2.java主界面代码如下:MainActivity.java

 

复制代码
 1 package com.example.buttondemo;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.os.Handler;
 6 import android.os.Message;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.ProgressBar;
10 import android.widget.TextView;
11 
12 public class MainActivity extends Activity {
13     int i = 0;
14     ProgressBar progressBar = null;
15     Button downLoadBtn = null;
16     Handler handler = new Handler() {
17         public void handleMessage(android.os.Message msg) {
18             switch (msg.what) {
19             case 1:
20                 i += 5;
21                 progressBar.setProgress(i);
22                 if (i != 100) {
23                     handler.sendEmptyMessageDelayed(new Message().what = 1, 500);
24                     downLoadBtn.setText(i + "%");
25                 } else if (i == 100) {
26                     downLoadBtn.setText("下载完成");
27                     // 进度条运行完成时按钮可用
28                     downLoadBtn.setEnabled(true);
29                 }
30                 break;
31 
32             default:
33                 break;
34             }
35         };
36     };
37 
38     @Override
39     protected void onCreate(Bundle savedInstanceState) {
40         super.onCreate(savedInstanceState);
41         setContentView(R.layout.activity_main);
42         TextView tx = (TextView) findViewById(R.id.text);
43         progressBar = (ProgressBar) findViewById(R.id.progressBar);
44         downLoadBtn = (Button) findViewById(R.id.downLoadBtn);
45         downLoadBtn.setOnClickListener(new View.OnClickListener() {
46 
47             @Override
48             public void onClick(View v) {
49                 i = 0;
50                 handler.sendEmptyMessage(new Message().what = 1);
51                 // 进度条运行时按钮不可用
52                 downLoadBtn.setEnabled(false);
53             }
54         });
55     }
56 
57 }
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值