編輯:關於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
ListView(1)控件架構與ArrayAdapter詳解
ListView是Android開發中比較常用的一個組件,它以列表的形式展示信息,並能根據信息的長度自適應顯示。比如說我們手機裡的通訊錄就用到了ListView顯示聯系人
Android動畫機制與使用技巧(五)——Android 5.X SVG 矢量動畫機制
Google在Android 5.X 中增加了對SVG 矢量圖形的支持,這對於創建新的高效率動畫具有非常重大的意義。那首先了解SVG的含義。可伸縮矢量圖形(Scalabl
Android開發之TableLayout表格布局
表格布局模型以行列的形式管理子控件,每一行為一個TableRow的對象,當然也可以是一個View的對象。TableRow可以添加子控件,每添加一個為一列。TableLay
android SlidingTabLayout實現ViewPager頁卡滑動效果
先來張效果圖(可以滑動切換頁卡) 主頁面布局文件 remind_auction_new_list.xml : 主頁面代碼: public c