Android应用界面组件(中)

(一)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)添加多个组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值