码迷,mamicode.com
首页 > 移动开发 > 详细

Android -- 自定义带进度条的按钮

时间:2015-02-27 15:09:32      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

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;

	@ Override
	protected 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 ( ) {

			@ Override
			public 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 -- 自定义带进度条的按钮

标签:

原文地址:http://www.cnblogs.com/SM-t/p/4303216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!