標籤:
1. 實現了一個帶進度條的按鈕,完成後顯示提示資訊,並設定按鈕為不可再次被點擊
2. 所需要的圖片
3. 代碼
MainActivity
package com.example.buttondemo;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;public class MainActivity extends Activity {int i = 0;ProgressBar progressBar = null;Button downLoadBtn = null;@ Overrideprotected void onCreate ( Bundle savedInstanceState ) {super.onCreate ( savedInstanceState );setContentView ( R.layout.activity_main );progressBar = ( ProgressBar ) findViewById ( R.id.progressBar );downLoadBtn = ( Button ) findViewById ( R.id.downLoadBtn );downLoadBtn.setOnClickListener ( new View.OnClickListener ( ) {@ Overridepublic void onClick ( View v ) {i = 0;handler.sendEmptyMessage ( new Message ( ).what = 1 );}} );}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 ( "下載完成" );downLoadBtn.setClickable ( false );}break;default :break;}};};}
Layout
<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" > <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>
btn_selector.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="false" android:drawable="@android:color/transparent"></item> <item android:state_pressed="true" android:drawable="@drawable/aa_button_gray_pressed"></item></selector>
progress_selector.xml
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/progress"> <clip android:clipOrientation="horizontal" android:drawable="@drawable/aa_button_normal" android:gravity="left" /> </item></layer-list>
每天進步一點點
Android -- 自訂帶進度條的按鈕