Android应用界面组件(中)

来源:互联网 发布:手机区域截图软件 编辑:程序博客网 时间:2024/05/29 18:14
(一)TextView及其子类
继承关系:TextView直接继承了View,EditText和Button两个UI组件的父类。
常用XML属性:
android:autoText控制是否将URL、E-mail地址等连接自动转换成可单击的连接
android:autoLink是否将符合指定格式的文本转换成可以单击的超连接形式
android:editable设置文本是否可以编辑
android:fontFamily设置文本框内的字体
android:ellipsize文本超过TextView的长度时如何处理
android:gravity设置文本内容的对齐方式
android:inputType指定文本框的类型。类似于<input />标签
android:password
android:phoneNumber
android:text 设置文本框内的文本内容
android:textSize设置文本框内的文本大小
android:drawable指定图片
1.EditText
与TextView相似,唯一的区别是EditText可以接受用户输入。
两个子类:
1.AutoCompleteTextView:带有自动完成功能的EditText.通常需要结合Adapter结合使用。
子类有MultiAutoCompleteTextView,与AutoCompleteTextView的区别是允许输入多个提示项,提供setTokenizer()方法来设置分隔符
常用XML属性有
android:completionHint设置下拉菜单的提示标题
android:coompletionThreshold设置用户至少输入几个字符才会显示
android:dropDownHorizontalOffset设置下拉菜单与文本框的水平对齐方式,默认左对齐
使用ArrayAdapter作为adapter时可以使用android.R.layout_simple_dropdown_item_lline作为列表项组件
2.ExtractEditText:并不是UI组件,而是EditText组件的底层服务类。负责提供全屏输入法的支持。
2.按钮(Button)
单选按钮(RadioButton)
放在<RadioGroup>
点击事件;setOnCheckChangeListener(new RadioGroup.OnCheckChangeListener())
复选按钮(checkBox)


状态开关按钮(ToggleButton)     通常用于切换程序中的某种状态
常用XML属性:
android:checked
android:textOff关闭时显示的文本
android:textOn打开时显示的文本
开关(Switch) 通常用于切换程序中的某种状态
3.TextClock
常用XML属性
android:format12Hour设置该时钟12小时制的字符串格式
android:format24Hour设置该时钟24小时制的字符串格式
android:timeZone设置该时钟的时区
4.AnalogClock
常用XML属性
android:dial 设置模拟时钟表盘使用的图片
android:hand_hour设置模拟时钟的时针使用的图片
android:hand_minute设置模拟时钟的分针使用的图片
5.Chronometer计时器
唯一的XML属性
android:format设置计时器的计时格式
支持如下方法
setBase(long base)设置计时器的起始时间
setFormat(String format)设置显示时间的格式
start() 开始计时
stop() 停止计时
setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener)为计时器绑定监听器,当计时器改变时触发监听器。


(二)ImageView及其子类
继承于View,主要功能显示图片。任何Drawable对象都可以使用ImageView来显示。派生了ImageButton,ImageButton又是ZoomButton的父类。ZoomButton可以实现放大或者缩小
常用的XML属性
android:scaleType设置所显示的图片如何缩放或移动以适应ImageView的大小。
android:src 设置ImageView所显示的Drawable对象的ID
android:maxHeight设置最大高度
android:maxWidth设置最大宽度
QuickContackBadge可以关联到指定联系人。assignContactFromPhone("电话号码",false);


(三)AdapterView及其子类
继承于ViewGroup,它的本质是一个容器
可以包含多个列表项,并将多个列表项以合适的形式显示出来。
AdapterView显示的多个列表项由Adapter提供,调用AdapterView的setAdapter(Adapter)方法来设置Adapter即可。
派生出三个抽象子类:AbsListView,AbsSpinner和AdapterViewAnimator
1.列表视图(ListView)和ListActivity
常用的XML属性
android:choiceMode设置AbsListView的选择行为,
该属性支持如下的属性值
none  :不显示任何选中的项
singleChoice: 允许单选
multipleChoice:允许多选
multipleChoiceModal: 允许多选
android:divider设置List列表的分隔条(既可以是颜色分隔,又可以是Drawable分割。)
android:dividerHeight设置分隔条的高度
android:entries指定一个数组资源(数组用<string-array name=""><item></item><string-array>)
android:headerDividersEnabled 如果为false则不在header view之后绘制分割条
如果为ListActivity则无需setContentView,直接setListAdapter(adapter)
adapter可以使用android.R.layout.simple_list_item_multiple_choice作为布局文件
重要的子类ExpandableListView,把列表项分为几组,每组又可以包含多个列表项。由ExpandableListAdapter提供。
三种常用方式:
BaseExpandableListAdapter实现ExpandAdapter里面的方法
SimpleExpandableListAdapter将两个list集合包装成ExpandableListAdapter
SimpleCursorTreeAdapter将Cursor中的数据包装成SimpleCursorTreeAdapter
额外支持的常用XML属性
android:childDivider指定各组内各子列表之间的分隔条
android:childIndicator显示在子列表项旁边的Drawable对象
android:groupIndicator显示在组列表项旁边的Drawable对象
2.GridView(网格视图)
与ListView共同继承于AbsListView、区别在于GridView可以显示多列
常用XML属性
android:numColumns设置列数
3.Spinner(列表选择框)
继承于AbsSpinner
常用的XML属性
android:entries使用数组资源设置该下拉列表框的列表项
android:prompt设置该列表选择框的提示信息
设置数据可以通过Adapter,也可以通过设置android:entries属性。
4.AdapterViewFlipper
继承于AdapterViewAnimator。提供多个View组件,但是每次只能显示一个。程序通过showPrevious()和showNext()方法控制显示上一个,下一个组件。
5.StackView
继承于AdapterViewAnimator。以堆叠方式显示View组件。

(四)Adapter接口及其实现类
派生了ListAdapter和SpinnerAdapter两个子接口
其中ListAdapter为AbsListView提供列表项,SpinnerAdapter为AbsSpinner提供列表项
BaseAdapter同时实现了ListAdapter和SpinnerAdapter接口
常用的Adapter实现类如下:
ArrayAdapter:通常用于将数组或List集合多个值包装成多个列表项


ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(Context,textViewResource(一个布局文件),数组或者List);


SimpleAdapter:可用于将List集合的多个对象包装成多个列表项


SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItem,R.layout.simple_item,new String[]{....},new int[]{....})
第2个参数List<?extends Map<String,?>>生成一个列表项
第3个参数指定一个界面布局的ID
第4个参数String类型的数组,指定那些key对应的value来生成列表项
第5个参数int[]类型的参数,决定填充那些组件
事件监听器:
setOnItemClickListener列表项被单击时触发
setOnItemSelectedListener列表项被选中时触发


SimpleCursorAdapter:用于包装Cursor提供的数据


扩展BaseAdapter
BaseAdapter  adapter = new BaseAdapter
{
getCount():该方法返回值决定Adapter将会包含多少个列表项
getItem(int position)返回值决定第position处的列表项的内容
getItemId(int positon)返回值决定第position处的列表项的ID
getView(int position,View convertView,ViewGroup parent)该方法的返回值决定第position处的列表项组件
}


(五)ProgressBar及其子类
唯一的抽象类AbsSeekBar,派生出SeekBar和RatingBar两个子类。
1.ProgressBar(进度条)
style属性:指定进度条的风格
XML属性:
android:max 设置该进度条的最大值
android:progress设置该进度条已完成的进度值
android:progressDrawable设置进度条的轨道对应的Drawable对象
如下方法操作进度
setProgress(int)设置进度的百分比
incrementProgressBy(int)设置进度条的进度增加或者减少,正数是增加,负数是减少。
设置显示在标题上的进度条
1.调用Activity的requestWindowFeature()方法,传入Window.FEATURE_INDETERMINATE_PROGRESS在窗口上显示带进度的进度条,传入Window.FEATURE_PROGRESS则显示带进度的进度条
2.调用Activity的setProgressBarVisibility(boolean)或setProgressBarIndeterminateVisibility(boolean)则可以控制进度条的显示与隐藏。
2.SeekBar(拖动条)
android:thumb 指定一个Drawable对象,该对象作为自定义滑块。
3.RatingBar(星级评分条)
android:isIndicator设置星级评分条是否允许用户改变
android:numStars设置星级评分条总共有多少个星星
android:rating设置默认的星级
android:stepSize设置每次最少需要改变多少星级
(六)ViewAnimator及其子类
ViewAnimator继承于FrameLayout
XML属性:
android:animateFirstView设置ViewAnimator显示第一个View组件时是否使用动画
android:inAnimation设置ViewAnimator显示组件时所使用的动画
android:outAnimation设置ViewAnimator隐藏时所使用的动画
1.ViewSwitcher(视图切换组件)
一般通过设置ViewSwitcher的setFactory(ViewSwitcher.ViewFactory)方法设置ViewFactory
2.ImageSwitcher(图像切换器)
继承于ViewSwithcer。其效果更炫,可以指定图片切换时的动画效果。
3.TextSwitcher(文本切换器)
继承于ViewSwitcher。
4.ViewFlipper
继承于ViewAnimator,它可以调用addView(View v)添加多个组件。
原创粉丝点击