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