2015年11月15日 星期日

[Android]android常用控件

在 Android 中使用各種控件(View)

  • DatePicker - 日期選擇控件
  • TimePicker - 時間選擇控件
  • ToggleButton - 雙狀態按鈕控件
  • EditText - 可編輯文本控件
  • ProgressBar - 進度條控件
  • SeekBar - 可拖動的進度條控件
  • AutoCompleteTextView - 支持自動完成功能的可編輯文本控件
  • MultiAutoCompleteTextView - 支持自動完成功能的可編輯文本控件,允許輸入多值(多值之間會自動地用指定的分隔符分開)
  • ZoomControls - 放大/縮小按鈕控件
  • Include - 整合控件
  • VideoView - 視頻播放控件
  • WebView - 瀏覽器控件
  • RatingBar - 評分控件
  • Tab - 選項卡控件
  • Spinner - 下拉框控件
  • Chronometer - 計時器控件
  • ScrollView - 滾動條控件
在Android中使用的Layout
FrameLayout:裏面只可以有一個控件,並且不能設計這個控件的位置,控件會放到左上角
LinearLayout:裏面可以放多個控件,但是一行只能放一個控件
TableLayout:這個要和TableRow配合使用,很像html裏面的table
AbsoluteLayout:裏面可以放多個控件,並且可以自己定義控件的x,y的位置
RelativeLayout:裏面可以放多個控件,不過控件的位置都是相對位置
(Android界面布局好像還可以直接引用一些view,如ScrollView等)

常用控件:



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
    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