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 }