簡單的佈局及簡單的UI控件介紹


1、佈局:
一個Activity相當於一個手機屏幕
默認和手機屏幕的寬高相同
LinearLayout、RelativeLayout等佈局繼承了ViewGroup,ViewGroup是View的子類,可以容納其他的視圖,屬於
容器視圖
TextView


1)LinearLayout:線性佈局
默認方向是水平方向:每個視圖單獨佔據一列,第二個視圖的起始位置是第一個視圖的結束位置
垂直方向:每個視圖單獨佔據一行,試圖和視圖緊挨着


屬性值: match_parent 匹配上一級 、 wrap_content 包裹內容
相對佈局指定佈局的方向:orientation:方向...指定佈局方向屬性
vertical :垂直方向
horizontal:水平方向




padding:設置的視圖中的內容和本視圖的邊兒的間距
layout_margin:設置的本視圖相對於周圍視圖的間距


控件的一些屬性:
textSize:指定顯示文本的大小
text:文本顯示內容




顏色的表示方式:
RGB(紅綠藍):每一位上的數是一個十六進制的數,組合起來表示顏色,範圍:000-fff
RRGGBB:每兩位表示一種顏色,範圍:000000-ffffff
ARGB:A代表alpha 表示透明度 0表示完全透明,f表示完全不透明
AARRGGBB:A同樣代表alpha 表示透明度 00表示完全透明,ff表示完全不透明




比重屬性的設置:
layout_weight:表示分配比重的屬性
weight後面的屬性值就表示要分配的屬性:
其分配的原則是:在佈局當中,首先滿足沒有設置weight屬性的控件要求.
然後將該佈局中的剩下的空餘空間,按照控件的weight屬性值進行相加得到和n,然後分成n等份,
最後,每個控件的weight屬性值是m,所以,相應的控件所佔的空間就是m/n。


另外,對於分配比重的視圖,
如果是水平佈局:
1)如果layout_width="wrap_conent",比重越大,分配的寬度就越大
2)如果layout_width="match_parent",比重值越大,分配的寬度就越小
  總結:爲了避免這樣的情況出現,記不住該設置哪一個,所以直接設置layout_width="0dp";簡單又快捷


如果是垂直佈局
1)如果layout_height="wrap_content",比重越大,分配的高度就越大
2)如果layout_height="match_parent",比重越大,分配的高度就越小
  總結:同樣爲了避免這樣的情況出現,記不住該設置哪一個,所以直接設置layout_height="0dp";簡單快捷




位置佈局屬性:
layout_gravity:設置是本視圖相對於上一級圖的顯示位置  指的是視圖的顯示位置
gravity:本視圖中的內容相對於本視圖的顯示位置   指的是內容的顯示位置


layout_margin:指定空間與周圍其他視圖的間距


padding:指定顯示內容相對於自己空間邊框的間距




2、TextView:
設置鏈接;android:autoLink=""可以有多個值
android:singleLine=""設置單行顯示
android:ellipsize=""設置省略號出現的位置


實現跑馬燈滾動效果:
android:fosusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimt="3"滾動的次數


默認情況下:TextView的focusable,focusableInTouchmode兩個屬性的值都是false


focusable:針對按鍵的
focusableInTouchMode:針對屏幕觸摸的


focusable的值爲true是focusableInTouchMode起作用的前提條件


單行顯示文本  android:singleLine="true"
       android:ellipsize=""   在開始,中間,結束     位置顯示省略號




3、Button:
順帶着Toast的用法


4、EditText:可編輯文本框


hint:提示用戶需要輸入的內容
inputType:限制用戶輸入數據的類型,其作用是幫助輸入法確定顯示對應類型的鍵盤


5、checkedBox:複選框。
checked屬性表示是否被選中
onClick屬性表示被選中時執行的方法


在代碼中如何判斷複選框是否被選中呢?
boolean flag = ((Checked)v).isChecked();
如果flag是true,就表示複選框被選中了


對於爲複選框(Checked)添加監聽事件監聽其狀態是否發生變化時,採用的監聽方式是:
checkedBox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){});
其實僅僅是方法名有些不同而已,監聽原理以及處理方法都是一致的,也是相通的.


只是有些小不同的是:
實現監聽接口複寫方法時;會有兩個參數.
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)
{
//1第一個參數傳遞的是被點擊的多選框的控件對象
int checkedBoxId = buttonView.getId();


//2第二個參數表示的該被點擊的對象是否被選中
if(isChecked)
{
  //被選中了的處理方式
}
else 
{
  //沒有被選中的處理方式
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章