1. 程式人生 > >5.9UI的理解筆記

5.9UI的理解筆記

fin 構造 textview 執行 top build resource set 進度條

1.UI的理解

全稱user interface 意為:用戶界面

UI有view和viewGroup的根基類

view在屏幕上占據一片矩形區域,並會在上面進行內容繪制

viewGroup包含一些view或viewGrorup 用於控制字view的布局事件模型

事件是什麽

誰是事件源? 1.註冊--->2.觸發----> 事件源---->3.生成---->事件---->4.傳遞---->5.調用---->回調方法

誰是事件監聽器?

設置監聽器:view.setOn...listener(listener)

2.常用的UI組件

2.1簡單的UI組件

1).textview:文本視圖

android:id="@+id/tv_test1_msg"//指定ID

android:layout_width="match_parent"//寬度

android:layout_height="wrap_content"//高度

android:text="@string/tv_content"//文本

android:textColor="#FF0000"//文本顏色

android:textSize="20sp"//字體大小

2).edittext:可編輯的文本視圖

android:hint="請輸入手機號"//默認提示文本

android:inputType="phone//輸入數據類型限定

3).button:按鈕

4).imageview:圖片視圖

android:background="@drawable/ic_launcher//背景圖片

android:src="@android:drawable/ic_media_play"//前景圖片

// 設置背景圖片 public void setimageresurce(int resld)

// 設置前圖片public void setbackgroundresource(int resid)

5).checkBox:多選框

android:checked=“true”/> //標識默認是否勾選

//判斷當前是否勾選

boolean isChecked()

//設置CheckBox是否勾選

void setChecked(boolean checked)

//設置選中狀態改變的監聽

void setOnCheckedChangeListener(OnCheckedChangeListener listener)

6).RadioGroup/RadioButton : 單選框

android:id="@+id/rg_test1_sex"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/rb_test1_male"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="男" />

android:id="@+id/rb_test1_female"

android:layout_width="wrap_content"

android:layout_height="wrap_content“

android:checked="true"

android:text="女" />

2.2菜單 * optionMenu

* 1.如何觸發Menu的顯示

* 點擊Menu鍵

*2.如何向Menu中添加MenuInfalter?重寫onCreateOptionsMenu方法

* 1.menu。add()

* 菜單文件

*3.選擇某個MenuItem是如何響應

* 重寫onOptionsItemSelected方法

*ContextMenu

* 1.如何觸發Menu的顯示

* 長按某個視圖,並view.setoncreatecontextMenulistener(this)

* 2.如何向Menu中添加MenuInfalter?

* 重寫oncreatecontextMenu()方法用menu.add()添加(菜單文件方式也可以)

* 3.選擇某個MenuItem是如何響應

* 重寫oncontextItemSelected()根據item去響應

*/

2.3進度條

a.圓形

android:id="@+id/pb_test3_loading1"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

b水平

android:id="@+id/pb_test3_loading2"

style=“?android:attr/progressBarStyleHorizontal“ //水平進度條

android:layout_width="match_parent“

android:layout_height="wrap_content"

android:progress=“2“ //當前進度, 默認為0

android:max=“10”/> // 最大進度, 默認為100

?ProgressBar

voidsetProgress(intProgress) : 設置當前進度

int getProgress() : 得到當前進度

voidsetMax(intmax) : 設置最大進度

int getMax() : 設置或得到最大進度

?View

voidsetVisibility(intvisibility) : 設置視圖的可見性

View. VISIBLE :標識可見

View. INVISIBLE :標識不可見, 但占屏幕空間

View.GONE :標識不可見, 也不占屏幕空間

2.seekbar

android:id="@+id/sb_test3_prgress"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

SeekBar:

setOnSeekBarChangeListener(OnSeekBarChangeListener l) :設置改變的監聽

OnSeekBarChangeListener:

onProgressChanged(SeekBar seekBar, intprogress, boolean fromUser) : 進度改變

onStartTrackingTouch(SeekBar seekBar) : 按下滑桿

onStopTrackingTouch(SeekBar seekBar) : 從滑桿離開

S;

2.4對話框

1.API結構

2.alerdialog

a.一般的

AlertDialog :

show() :顯示警告框

沒有公開的構造方法, 只能通過其內部類Builder來創建

AlertDialog.Builder:

create() :創建AlertDialog對象

show()

: 創建AlertDialog對象, 同時將其顯示出來

setTitle(CharSequencetitle) : 設置標題

setMessage(CharSequencemessage) : 設置內容

setPositiveButton(String

text, OnClickListener listener) : 設置正面按鈕

setNegativeButton(String

text, OnClickListener listener): 設置負面按鈕

dismiss() : 移除dialog

setSingleChoiceItems(….)設置單選項列表

AlertDialog :

show() :顯示警告框

沒有公開的構造方法, 只能通過其內部類Builder來創建

AlertDialog.Builder:

create() :創建AlertDialog對象

show()

: 創建AlertDialog對象, 同時將其顯示出來

setTitle(CharSequencetitle) : 設置標題

setMessage(CharSequencemessage) : 設置內容

setPositiveButton(String

text, OnClickListener listener) : 設置正面按鈕

setNegativeButton(String

text, OnClickListener listener): 設置負面按鈕

dismiss() : 移除dialog

b自定義布局

AlertDialog :

show() :顯示警告框

沒有公開的構造方法, 只能通過其內部類Builder來創建

AlertDialog.Builder:

create() :創建AlertDialog對象

show()

: 創建AlertDialog對象, 同時將其顯示出來

setTitle(CharSequencetitle) : 設置標題

setMessage(CharSequencemessage) : 設置內容

setPositiveButton(String

text, OnClickListener listener) : 設置正面按鈕

setNegativeButton(String

text, OnClickListener listener): 設置負面按鈕

dismiss() : 移除dialog

setSingleChoiceItems(….)設置單選項列表

setSingleChoiceItems(….)設置單選項列表

AlertDialog :水平進度

show() :顯示警告框

沒有公開的構造方法, 只能通過其內部類Builder來創建

AlertDialog.Builder:

create() :創建AlertDialog對象

show()

: 創建AlertDialog對象, 同時將其顯示出來

setTitle(CharSequencetitle) : 設置標題

setMessage(CharSequencemessage) : 設置內容

setPositiveButton(String

text, OnClickListener listener) : 設置正面按鈕

setNegativeButton(String

text, OnClickListener listener): 設置負面按鈕

dismiss() : 移除dialog

setSingleChoiceItems(….)設置單選項列表

方式一

new Thread(){

public voidrun(){

//下面的代碼在分線程執行

}

}.start();

方式二

new Thread(new Runnable(){

public voidrun(){

//下面的代碼在分線程執行

}

}).start();

根據ID查找view對象

a.查找當前界面中的view對象:findviewbyid(id)

b.查找某個view對象的自view:viewfindviewbyid

更新視圖

a.不能在分線程直接更新UI

toast不能再分現程顯示

但progressDialog可以在分線程更新

b.長時間的工作職能放在分線程執行

5.9UI的理解筆記