Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android UI組件進階(1)——帶進度條的按鈕

Android UI組件進階(1)——帶進度條的按鈕

編輯:關於Android編程

Android UI組件進階(1)——帶進度條的按鈕

 

 

本節引言:

這個系列是繼Android UI組件實例大全後的進階系列,在該系列中我們將進一步的學習

Android UI組件,建議閱讀本系列前線學習下UI組件實例大全系列,掌握基本組件的使用;

當然你也可以直接學習本系列!好了,廢話不多說,直接開始第一節吧!本節要演示的是:

帶進度條的按鈕!相信大家在360手機助手到看到這個東東吧:

\\

本節要實現的就是下方這個點擊後顯示進度的按鈕

 

 

效果圖:

\

 

 

 

必備基礎:

1.進度條的一些屬性:

background:設置背景圖片

max:設置進度條的最大值

progress:設置進度條的值

style=?android:attr/progressBarStyleHorizontal :定義進度條為水平方向的風格

progressDrawable:當我們不想使用系統默認的Progress時可以自己定義一個,這個資源文件就是

用來調用我們自己定義的Progress圖標的一般是在drawable下建立一個.xml件使用layer-list來組

織這些圖標.

 

2.Handler的相關方法:

對UI的操作要麼在主線程中進行,要麼在handler中進行,切忌別在新線程中直接操作UI組件,會報異常的!

handleMessage(msg):使用Handle需要重寫的主要方法,使用msg.what判斷標識碼,執行對應操作

sendEmptyMessage(0x123):發送一個空信息給handle,標識碼為0x123

sendEmptyMessageDelayed(0x321,500);發送一個空信息給handler,標識碼為0x321,延遲500毫秒後發送

 


 

工程解析:

\

 

 

相關代碼:

MainActivity.java

 

package com.jay.uidemo.progressbuttondemo;


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;
	Handler handler=new Handler(){
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case 0x123:
				downLoadBtn.setClickable(false);
				i+=20;
				progressBar.setProgress(i);
				if(i!=100){
					handler.sendEmptyMessageDelayed(0x123,500);
					downLoadBtn.setText(i+%);
				}else if(i==100){
					downLoadBtn.setText(下載完成);
					handler.sendEmptyMessageDelayed(0x321,500);
				}
				break;
			case 0x321:
				downLoadBtn.setText(打開);
				downLoadBtn.setClickable(true);
				downLoadBtn.setBackgroundResource(R.drawable.aa_button_after);
				handler.sendEmptyMessageDelayed(0x110,1000);
				break;
			case 0x110:
				progressBar.setProgress(0);
				downLoadBtn.setBackgroundResource(R.drawable.btn_selector);			
				downLoadBtn.setText(下載);
			default:
				break;
			}
		};
	};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		 TextView tx = (TextView) findViewById(R.id.texttitle);
		  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(0x123);
			}
		});
		
	}
}


 

drawable中的btn_selctor.xml

 



    
    


 

drawable中的progress_selctor.xml

 



    
        
    


activity_main.xml:

 

 



    
	 
	        


 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved