5.9UI的理解筆記
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的理解筆記