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

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>

每天进步一点点

时间: 2024-10-10 07:42:40

Android -- 自定义带进度条的按钮的相关文章

Android UI组件进阶(1)——带进度条的按钮

Android UI组件进阶(1)--带进度条的按钮 本节引言: 这个系列是继Android UI组件实例大全后的进阶系列,在该系列中我们将进一步的学习 Android UI组件,建议阅读本系列前线学习下UI组件实例大全系列,掌握基本组件的使用; 当然你也可以直接学习本系列!好了,废话不多说,直接开始第一节吧!本节要演示的是: 带进度条的按钮!相信大家在360手机助手到看到这个东东吧: 本节要实现的就是下方这个点击后显示进度的按钮 效果图: 必备基础: 1.进度条的一些属性: backgroun

自定义带进度条的WebView , 增加获取web标题和url 回掉

1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graphics.Bitmap; import android.util.AttributeSet; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; /

android自定义圆形进度条,实现动态画圆效果

自定义圆形进度条效果图如下:应用场景如动态显示分数等. view的自定义属性如下attr.xml <?xml version="1.0" encoding="UTF-8"?> <resources> <declare-styleable name="ArcProgressbar">         <!-- 圆环起始角度-->         <attr name="startAng

Android更新带进度条的通知栏

在网上查询了下,Android版本号更新通知栏带进度条,醉了,基本都是复制过来.有的代码不全,连源代码下载都没有,有下载也须要积分.还不能用.真黑心啊!! 之前自己也写过自己定义通知栏Notification,想了还是自己写吧. 由于在通知栏更新,须要訪问网络下载,就写了个服务.在服务中实现了下载个更新. 先看MainActivity代码: package com.wsj.wsjdemo; import android.os.Bundle; import android.app.Activity

android自定义渐变进度条

</pre>       项目中需要用到一个弧形渐变的进度条,通过android自带是不能实现的,我是没有找到实现的方法,有大神知道的可以指点,效果图是下面这样的<p></p><p><img src="" alt="" /><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbcAAAClCAYAAADf/rPPAAAgAElEQ

Android自定义圆形进度条

首先看一下效果: 自定义的View: import com.example.circlepregress.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF

Android自定义View——圆形进度条式按钮

介绍 今天上班的时候有个哥们问我怎么去实现一个按钮式的进度条,先来看看他需要实现的效果图. 和普通的圆形进度条类似,只是中间的地方有两个状态表示,未开始,暂停状态.而且他说圆形进度的功能已经实现了.那么我们只需要对中间的两个状态做处理就行了. 先来看看实现的效果图: 上面说了我们只需要处理中间状态的变化就可以了,对于进度的处理直接使用了弘洋文章中实现: http://blog.csdn.net/lmj623565791/article/details/43371299 下面开始具体实现. 具体实

Android 高手进阶,自定义圆形进度条

背景介绍 在Android 开发中,我们经常遇到各种各样绚丽的控件,所以,依靠我们Android本身所带的控件是远远不够的,很多时候需要我们自己定义控件,在开发的过程中,我们公司遇到了一种需要自己写的一个自定义带进度的圆形进度条,看起来非常的绚丽,当然还有一些其他的,比如:水纹形的圆形进度条等效果都是非常nice的.如果哪位朋友有实现,希望分享出来,我也好学习学习.好了多的不说,接下来,我们就来看看来如何实现圆形进度条. 原文地址:http://blog.csdn.net/xiaanming/a

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:layo