1.Android RelativeLayout 屬性
// 相對於給定ID控制項
android:layout_above 將該控制項的底部置於給定ID的控制項之上;
android:layout_below 將該控制項的底部置於給定ID的控制項之下;
android:layout_toLeftOf 將該控制項的右邊緣與給定ID的控制項左邊緣對齊;
android:layout_toRightOf 將該控制項的左邊緣與給定ID的控制項右邊緣對齊;
android:layout_alignBaseline 將該控制項的baseline與給定ID的baseline對齊;
android:layout_alignTop 將該控制項的頂部邊緣與給定ID的頂部邊緣對齊;
android:layout_alignBottom 將該控制項的底部邊緣與給定ID的底部邊緣對齊;
android:layout_alignLeft 將該控制項的左邊緣與給定ID的左邊緣對齊;
android:layout_alignRight 將該控制項的右邊緣與給定ID的右邊緣對齊;
// 相對於父組件
android:layout_alignParentTop 如果為true,將該控制項的頂部與其父控制項的頂部對齊;
android:layout_alignParentBottom 如果為true,將該控制項的底部與其父控制項的底部對齊;
android:layout_alignParentLeft 如果為true,將該控制項的左部與其父控制項的左部對齊;
android:layout_alignParentRight 如果為true,將該控制項的右部與其父控制項的右部對齊;
// 置中
android:layout_centerHorizontal 如果為true,將該控制項的置於水平置中;
android:layout_centerVertical 如果為true,將該控制項的置於垂直置中;
android:layout_centerInParent 如果為true,將該控制項的置於父控制項的中央;
// 指定移動像素
android:layout_marginTop 上位移的值;
android:layout_marginBottom 下位移的值;
android:layout_marginLeft 左位移的值;
android:layout_marginRight 右位移的值;
example:
android:layout_below = "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = “10px”
2.一些常用的公用屬性介紹
1) layout_width -寬
fill_parent: 寬度和父元素相同,wrap_content: 寬度隨本身的內容所調整,或者指定 px值來設定寬
2) layout_height - 高
fill_parent: 高度和父元素相同,wrap_content: 高度隨本身的內容所調整,或者指定 px值來設定高
3) background -設定背景圖
4) padding -設定邊距
可以具體設定paddingBottom,paddingLeft,paddingRight,paddingTop來設定不同的px值
5) id -該object的id號
@+id/id1 代表添加新的id名為id1, @id/id1 代表引用id1的控制項
6) layout_weight -重要度
個人理解為顯示的優先順序。預設為0(最高),數值越大,優先順序越低!參考下面的Linear
Layout例子。要讓layout_weight生效,需要父層或父父層的相應
layout_width/layout_height = "fill_parent",否則wrap_content
會壓縮到最小足夠空間!
7) layout_gravity- Container組件的對齊
組件在layout裡面的對齊。
8) gravity-文字在組件裡的對齊
例如設定button裡面的文字在button中置中顯示。
* 大多數屬性是可以調用對應的函數來動態改變狀態的,請查看SDK Doc。
2. Linear Layout 線形布局
orientation -容器內元素的相片順序。vertical: 子項目們垂直排列,horizontal:
子項目們水平排列。在代碼裡可通過setOrientation()進行動態改變,
值分別為HORIZONTAL或者VERTICAL。
*在Linear Layout, 寬度/高度都是按著組件的次序逐個佔用的!所以當某個組件設定
"fill_parent",在沒有設定Layout_weight的情況下,該組件會佔用了餘下的空間,
那麼在它後面的組件就會顯示不出來。如的EditText如果沒有設定
android:layout_weight="1",它下面的其他組件就看不見了!
baselineAligned 一般情況下,這個屬性預設為true,代表在同一方向的組件都基於
第一個組件對齊。所以可以看到的text1, button1, text2是在同一水平線的。
當不需要這效果時,可以設定為false。
3.android常用控制項
1,EditText
主要函數:setText/getText設定/擷取常值內容,setHint設定預設顯示內容;
2,RadioGroup,RadioButton
RadioButton的isChecked()判斷是否被選中
擷取選中RadioButon的ID:設定RadioGroup.setOnCheckedChangeListener方法
public onCheckedChanged(RadioGroup group,int checkedId)//checkedId是選中RadioButton的ID
3,CheckBox
isChecked()判斷是否被選中
setOnCheckedChangeListener方法監視選中狀態改變情況
4,Spinner
a,顯示資料
1),寫入程式碼載入
通過setAdapter方法設定類型為ArrayAdapter (Context context, int textViewResId, String []objects)
textViewResourceId:顯示內容的ViewID預設設定為R.layout.simple_spinner_item
objects:顯示的內容
2),從資源檔中載入
ArrayAdapter.createFromResource (Context context, int textArrayResId, int textViewResId) //textArrayResId是資源ID
返回ArrayAdapter<CharSequence>
b,設定下拉式清單的風格(可選)
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
c,監聽選項選擇變更事件
setOnItemSelectedListener設定監聽去
Spinner.OnItemSelectedListener類須實現以下兩個方法
public void onItemSelected (AdapterView<?> parent, View view, int position, long id)//view 選中項執行個體,position選擇項在adapter中的位置
public void onNothingSelected(AdapterView<?> arg0)
d,設定選中項
Spinner.setSelection(position)//索引從0開始
d,擷取選中項
getSelectedItemPosition ()
getSelectedItem () //該值toString()則為選中內容的字串
getSelectedItemId ()
getSelectedView ()
5,AutoCompleteTextView
1,setAdapter設定資料adapter
2,設定輸入多少個字元顯示提示AutoCompleteTextView.setThreshold(int threshold)
6,MultiAutoCompleteTextView (允許輸入多值,多值之間會自動地用指定的分隔字元分開)
1,setAdapter設定資料adapter
2,setTokenizer設定提示Tokenizer預設的為new MultiAutoCompleteTextView.CommaTokenizer()以逗號分隔
7,DatePicker,TimePicker
a,DatePicker
1),設定初始顯示日期init(int Year, int month, int day, new DatePicker.OnDateChangedListener(){
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth){}
})
2),擷取設定值 getYeah()/getMonth()/getDayOfMonth()
b,TimePicker
1),設定setCurrentHour (Integer currentHour) /setCurrentMinuter (Integer currentHour)
2,setIs24HourView(Boolean)設定是否為24小時制顯示
3,監聽設定改變setOnTimeChangedListener
c,擷取系統當期時間和日期
Calendar.getInstance()返回Calendar
Calendar.get (int field) ---field 可以為Calendar.YEAR/ Calendar.MONTH/ Calendar.DAY_OF_MONTH/ Calendar.HOUR_OF_DAY/ Calendar.MINUTE
8,ImageView/ImageButton
主要方法
setImageResource 設定顯示圖片
setAlpha 設定Alpha
invalidate 強制更新
setScaleType( ScaleType st) 設定圖片顯示方式,st是一枚舉
setAdjustViewBounds 設定是否調整控制項適應圖片大小
setBackgroundResource 設定背景
9,ImageSwitcher(顯示一系列的圖片,但當前只顯示一張圖片)
顯示資料
setFactory( ViewSwitcher.ViewFactory factory)設定要顯示的資料
,ViewFactory介面須實現方法public View makeView(){}負責提供當前顯示的視圖(ImageView),且View必須為新執行個體
方法
setImageResource設定當前顯示的圖片
getCurrentView()返回當前顯示的視圖
setInAnimation(Animation ani)設定視圖裝載入時的動畫效果,AnimationUtils.loadAnimation(Context context, int id) 擷取動畫效果android.R.anim.XX
setOutAnimation(Animation ani)設定視圖裝載入時的動畫效果
10,Gallery(顯示一系列的圖片,提供拖動等特效)
顯示資料
setAdapter(SpinnerAdapter adapter)設定資料配接器.
資料配接器可以繼承自BaseAdapter,該類 public View getView(int position, View convertView, ViewGroup parent) 返回當前選擇的視圖(ImageView)
選項選中監聽setOnItemSelectedListener
11,GridView(表格顯示一系列圖片)
顯示資料
setAdapter(ListAdapter adapter)設定資料配接器.
資料配接器可以繼承自BaseAdapter,該類 public View getView(int position, View convertView, ViewGroup parent) 返回當前選擇的視圖(ImageView)
選項選中監聽setOnItemSelectedListener
getSelectedView()返回當前選中的視圖
12,ScrollView
13,ProgressBar
setIndeterminate 設定進度條是否自動運轉
setProgressStyle 設定顯示風格.ProgressDialog.STYLE_HORIZONTAL/ProgressDialog.STYLE_SPINNER
setProgress 設定進度
setMax 設定最大值
getProgress()擷取當前進度
14,SeekBar
方法
setMax 設定最大值
getProgress()擷取當前值
setProgress 設定值
setIndeterminate
監聽器
setOnSeekBarChangeListener其下有三個方法
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) //數值變更,arg1新值,是否Touch
public void onStartTrackingTouch(SeekBar seekBar)//開始拖動
public void onStopTrackingTouch(SeekBar seekBar) //結束拖動
15,ListView
a,顯示資料setAdapter(ListAdapter adapter)
adapter可為new SimpleCursorAdapter/SimpleAdapter(Context context, int layout, Cursor c, String[] from, int[] to)
layout 用來顯示資料的模板.顯示一列可用android.R.layout.simple_list_item_1 兩列可用android.R.layout.simple_list_item_2
多列則需要自己實現xml視圖布局檔案
c 資料(可用ArrayList構造資料)
from ':
to 用來顯示對應列的空件id
b,動態增刪資料
adapter.notifyDataSetChanged()
d,設定背景色
setBackGroudRource