Android中常用UI组件总结

UI组件之布局管理器


A.     线性布局(LinearLayout):控制各组件横向排列,到头之后,剩下的组件将不会显示出来。常用属性

      1.      android:baselineAligned(boolean):该属性布局为false将阻止该布局管理器与它的子元素基线对齐。相关方法setBaselineAligned(boolean)。

      2.      android:divider:设置垂直布局时两组件的分割条。相关方法:

setDividerDrawable(Drawable)

      3.      android:gravity:设置组件对齐方式,支持top、buttom、left、right等几个属性值,同时也支持组合的属性值。方法:set Gravity(int)

B.     表格布局(TableLayout):TableLayout继承了LinearLayout,本质依然是线性布局管理器。通过添加TableRow来控制其他组件的行和列。单元格设置为宽度可以收缩(Shrinkable)、宽度可以被拉伸(Strechable)、单元格被隐藏(Collapsed)。TableLayout支持所有的LinearLayout 包含的XML属性,除此之外还有以下属性:

       1.      android:collapsedColumns:相关方法setColumnCollapsed(int,boolean)设置需要被隐藏的列序号,多个用逗号隔开。

       2.      android: shrinkcolumns:相关方法setShrinkAllColumns( boolean)设置允许被收缩的列序号,多个用逗号隔开。

       3.      android: strechcolumns:相关方法 set StrechAllColumns(boolean)设置允许被拉伸的列的列序号,多个用逗号隔开

C.     帧布局(FrameLayout):直接继承了ViewGroup组件,为每个组件创建一个空白区域,每个子组件占用一帧,根据其gravity属性对齐。常用属性:

      1.      android:foreground:相关方法setForeground(Drawable) 设置该帧容器的前景图像。

       2.      android:foregroundGravity:相关方法 setForegroundGravity(int)定义绘制前景图像的gravity属性。

D.     相对布局(RalativeLayout):子组件的位置总是相对于兄弟组件、父组件、容器决定的。提供了一个内部类:RalativeLayout.LayoutParams

RalativeLayout常用属性:

       1.      android:gravity: 相关方法setGravity(int),设置该布局容器内各子组件的对齐方式。

       2.      android:ignoreGravity: 相关方法setIgnoreGravity(int) 设置哪个组件不受gtavity属性的影响。

UI组件之TextView及其子类

A.     文本框(TextView)与编辑框(EditText)的功能和用法:

1.      TextView:直接继承自View,还是EditText、Button的父类。子类EditText允许用户编辑文本框内容。提供了大量的XML属性,通过这些属性来控制TextView中文本的行为:设置字号(android:textSize=”xx pt”)、指定背景(android:background=””)、字母大写、增加链接(android:autoLink=”email/phone”)等

2.      EditText:它使用了大部分TextView的XML属性,可以接受用户输入,最重要的属性就是inputType。EditText还派生了两个类,AutoCompleteTextVeiw:带有自动完成功能的编辑框;ExtractEditText: 并不是UI组件。而是EditText组件的底层服务类,负责全屏输入法支持。

B.     按钮组件的功能和用法

1.      Button继承了TextView,按钮提供给用户单击,触发onclick事件。同样可以利用textview的XML属性来为按钮组件设置不同的样式风格背景等。使用9Patch图片作为按钮背景可以按照自己的意图缩放图片某个部分。后缀名为.9.png。

2.      在活动中,通过findViewById()方法获取布局文件中的button组件。传入的数据为R.id.button,返回一个View对象,在向下转型为Button类型得到按钮实例,再通过调用SetOnClickListener()方法为按钮注册一个监听器,点击就执行onClick()方法。

3.      单选按钮(RadioButton)和复选框(CheckBox):继承自Button类,多了一个可选中的功能(android:cheched属性)。

4.      状态开关按钮ToggleButton与开关Switch:也是Button的子类,类似于复选框,通常用于切换程序的某种状态。

C.     时钟(AnalogClock和DigitalClock):

1.      DigitalClock本身就继承了TextView,显示内容总是当前时间。

2.      AnalogClock则继承View组件,重写了View的onDraw方法。

D.     计时器(Chronometer)继承自TextView,显示从某个时刻到现在经历的时长。

常用方法有:setBase(long base ):设置起始时间;setFormat(String format):设置显示时间制式;start():开始计时;stop():停止计时;

SetOnChronometerTickListener(Chronometer.OnChronometerTickListener):为计时器绑定事件监听器。

 UI组件之ImageView及其子类

ImageView继承自View组件,主要用于显示图片。派生的子类有ImageButton、ZoomButton等。属性中android:scaleType属性设置显示的图片如何移动和缩放以适应ImageView的大小,有多个属性值。

UI组件之AdapterView及子类

A.     AdapterView本身是一个抽象基类,继承了ViewGroup,本质是容器,可以包含多个列表项(由Adapter提供)并将它们用合适的方式显示出来(调用AdapterView的setAdapter(Adapter)方法设置Adapter即可)。派生的子类用法相似,只是在显示界面有一定区别。

B.     三个子类:AbsListView、AbsSpinner和AdapterViewAnimator,依然是抽象的,实际使用时依然用子类。

C.     列表视图(ListView)和ListActivity:ListView以垂直列表的形式显示列表项,可以直接用ListView进行创建,也可以让Activity继承ListActivity(相当于该Activity显示组件为ListView)。

 UI组件之AdapterView及子类

A.     AdapterView本身是一个抽象基类,继承了ViewGroup,本质是容器,可以包含多个列表项(由Adapter提供)并将它们用合适的方式显示出来(调用AdapterView的setAdapter(Adapter)方法设置Adapter即可)。派生的子类用法相似,只是在显示界面有一定区别。

B.     三个子类:AbsListView、AbsSpinner和AdapterViewAnimator,依然是抽象的,实际使用时依然用子类。

C.     列表视图(ListView)和ListActivity:ListView以垂直列表的形式显示列表项,可以直接用ListView进行创建,也可以让Activity继承ListActivity(相当于该Activity显示组件为ListView)。

D.     adapter接口及实现类:派生了两个子接口(ListAdapter和SpinnerAdapter)ListAdapte为AbsListView提供列表项,而SpinnerAdapter为AbsSpinner提供列表项。常用实现类有:

1.      ArrayAdapter:通常用于将数组或List集合的多个值包装成多个列表项

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

3.      SimpleCursorAdapter:类似于SimpleAdapter只用于包装Cursor提供的数据

4.      BaseAdapter:通常用于被扩展

创建ArrayAdapter时必须指定如下三个参数:

1.      Context:代表了访问整个Android应用的接口,几乎创建所有组件都需要传入Contexe对象

2.      textViewResourceld:一个资源id,该资源id代表一个TextView

3.      数组或List:该数组或List将负责为多个列表项提供数据。

E.      自动完成文本框(AutoCompleteTextView)的功能和用法:

从EditText派生而出,当用户输入一定字符后自动完成文本框会显示一个下拉菜单,供用户选择,当用户选择摸个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框。使用AutoCompleteTextView,只要为它设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本。

F.      网络视图(GridView)的功能和用法:

用于在界面上按行、列分布的方式来显示多个组件。和ListView有共同的父类(AbsListView),ListView只显示一列,GridView则可以显示多列。可以通过四种创建Adapter来提供显示数据。

G.     可展开的列表组件(ExpandableListView)

是List的子类,把应用中的列表项分为几组,每组又可包含多个列表项。实现ExpandableListView有如下三种方式:

1.      使用SimpleExpandableListAdapter将两个List集合包装成ExpandableListAdapter。

2.      扩展Base ExpandableListView实现ExpandableListAdapter

3.      使用SimpleCursorTreeAdapter将Cursor中的数据包装成simpleCursorTreeAdapter

H.     Spinner的功能和用法

一个列表选择框,弹出一个菜单供用户选择。只要为Spinner指定android:entries属性即可实现Spinner,如需动态的进行定制,则需要Adapter为Spinner提供列表项。

I.       画廊视图(Gallery)的功能和用法:

显示一个水平的列表选择框,允许用户通过拖动来查看上一个、下一个列表项。只要为它提供一个内容Adapter即可。Adapter方法返回的View将作为Gallery列表的列表项。可以通过OnItemSelectdListener监听器监控Gallery选择项的改变。

J.       AdapterViewFlipper的功能和用法:

显示Adapter提供的多个View组件,但每次只能显示一个,程序可以通过showPrevious()和showNext()方法控制。还可以在切换时使用渐隐渐现上午动画效果。还可以调用startFlipping()控制它自动播放下一个View组件。

K.      StackView的功能和用法:

也用于显示Adapter提供的系列View。将会以堆叠的方式来显示多个列表项。提供了两种控制方式:

1.      拖走StackView中处于顶端的View。下一个View将会显示出来。将上一个View拖进StackView,将使之显示出来。

2.      通过调用StackView的showNext()、showPrevious()控制显示上一个、上一个组件。

 UI组件之ProgressBar及其子类:

本身代表了进度条组件,它还派生了两个常用组件,SeekBar和RatingBar。

A.     进度条(ProgressBar)的功能和用法:用于向用户显示某个耗时操作完成的百分比,进度条可以动态的显示进度,避免长时间执行某个操作时,让用户感觉失去响应。@android:style/Widget.ProgressBar.Horizontal(水平进度条)

@android:style/Widget.ProgressBar.Inverse(普通大小的环形进度条)

@android:style/Widget.ProgressBar.Large(大环形进度条)

@android:style/Widget.ProgressBar.Large.Inverse(大环形进度条)

@android:style/Widget.ProgressBar.Small(小环形进度条)

@android:style/Widget.ProgressBar.Small.Inverse(小环形进度条)

常用方法:setProgress(int ):设置进度的完成百分比;incrementProgressBy(int):设置进度条的进度增加或减少。参数为正→增加,参数为负→减少。

显示在标题上的进度条:调用Activity的requestWindowFeature()方法,传入

Window.FEATURE_INDETERMINATE_PROCESS在窗口白提上显示不带进度的进度条,传入Window.FEATURE _PROCESS则显示带进度的进度条。调用Activity的setProgress

-BarVisibility(boolean)或setProgressBarIndeterminateVisibility(boolean)方法即可控制进度条的显示和隐藏。

B.     拖动条(SeekBar)的功能和用法:进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标示数值,并且允许用户拖动滑块来改变值。滑块外观通过如下属性来指定。android:thumb: 指定一个Drawable 对象,该对象作为自定义滑块。为它绑定一个OnSeekBarChangeListener监听器以响应滑块位置的改变。

C.     星级评分条(RatingBar)的功能和用法:

它和拖动条有共同的父类:AbsSeekBar,而RatingBar通过星星来表示进度。通过绑定OnRatingBarChangeListener监听器,来响应星级评分条的改动。

 UI组件之ViewAnimator及其子类

A.     ViewAnimator是一个基类,继承了FrameLayout,因此它表现出FrameLayout的特征。可以将多个View组件叠在一起,在切换时表现出动画效果。

B.     ViewSwitcher的功能和用法:每次只显示一个组件,支持切换时指定的动画效果。一般通过调用ViewSwitcher的setFactory(ViewSwitcher.ViewFactory)方法为之设置ViewFactory,并由该ViewFactory为之创建View即可。

C.     图像切换器(ImageSwitcher)的功能和用法:

继承了ViewSwitcher,因此具有和ViewSwitcher一样的特征;使用方法:为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的View组件必须是ImageView。需要切换图片时,只要调用ImageSwitcher的setImageDrawable(Drawable drawable)、setImageResource(intresid)和setImageURI(Uri uri)方法切换图片即可。

D.     文本切换器(TextSwitcher)的功能和用法:

继承了ViewSwitcher,因此可以在切换View组件时使用动画效果。使用TextSwitcher也需要设置一个ViewFactory。与ImageSwitcher不同的是ViewFactory的makeView ()方法必须返回一个TextView组件。

E.      ViewFlipper的功能与用法:

继承了ViewAnimator,可以调用addView(View v)添加多个组件,之后可以使用动画控制多个组件之间的切换效果。ViewFlipper需要开发者通过addView(View v)添加多个View。

各种杂项组件:

A.     日历视图(CalendarView)组件的功能和用法:

日历视图可用于显示和选择日期,用户既可以选择一个日期,也可以通过触摸来滚动日历。也可以调用CalendarView的setOnDateChangeListener()方法为此控件的点击事件添加事件监听器。

B.     日期、时间选择器(DatePicker和TimePicker)的功能和用法

DatePicker和TimePicker都是从FrameLayout派生而来,其中DatePicker 供用户选择日期;而TimePicker则供用户选择时间。

C.     数值选择器(NumberPicker)的功能和用法:

用于让用户输入数值,既可以输入也可以通过拖动来选择数值。如下三个方法:

setMinValue(int minVal):设置该组件支持的最小值

setMaxValue(int maxVal): 设置该组件支持的最大值

setValue(int value):设置该组件的当前值

D.     搜索框(SearchView)的功能和用法:

可以让用户在文本框中输入文字,并允许通过监听器监控用户输入,当用户提交搜索时,也可以通过监听器执行实际的搜索。

常用方法:

setconifiedByDedault(Boolean iconified):设置该搜索框默认是否自动缩小为图标。

setSubmitButtonEnabled(Boolean enabled):设置是否显示搜索按钮。

setQueryHint(CharSequence hint):设置搜索框内默认显示的提示文本。

setOnQueryTextListener(SearchView.OnQueryTextListener):为该搜索框设置事件监听器。

E.      选项卡(TabHost)的功能和用法

TabHost可以非常方便的在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域。通过这种方式,就可以在一个容器中放置更所组件。

F.      滚动视图(ScrollView)的功能和用法

用于为普通组件添加滚动条的组件。最多只能包含一个组件,而ScrollView的作用就是为该组件添加垂直滚动条。

G.     Notification的功能和用法:

Notification是显示在手机状态栏的通知,代表的是一种具有全局效果的通知,一般通过NotificationManager服务来发送Notification。

 




你可能感兴趣的:(自己记录,学习日志)