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