Android讲义3---第二章其他基础组件

来源:互联网 发布:剑三唐门捏脸数据 编辑:程序博客网 时间:2024/06/05 06:25
TabHost可以方便的放置多个标签页,每个标签页相当于获得一个与外部容器相同大小的组件摆放区。
与TabHost结合的还有如下组件:
TabWidget:代表选项卡的标题条
TabSpec:代表选项卡的一个TAB页面

TabHost提供两个方法创建,添加标签页。
newTabSpec:创建选项卡
addTab:添加选项卡

如果直接使用TabHost做界面,则:
TabHost的ID必须是:@android:id/tabhost
TabWidget的ID必须是:@android:id/tabs
FrameLayout的ID必须是:@android:id/tabcontent


SearchView是搜索组件,它可以让用户在文本框内输入文字,实现搜索。

常用方法:
setIconifiedByDefault:设置搜索框是否自动缩小为图标
setSubmitButtonEnabled:设置是否显示搜索按钮
setQueryHint:设置搜索框内默认的提示文本
setOnQueryTextListener:设置监听事件

NumberPicker通常使用以下三个方法:
1:setMinValue 设置组件最小值
2:setMaxValue  设置组件最大值
3:setValue  设置组件当前值

Toast不会获得焦点。
Toast过一段时间自动消失。

调用方法:
1:调用Toast的构造器或者makeText静态方法创建一个Toast对象。
2:调用Toast的方法设置提示的对齐方式,页边距等。
3:调用Toast的show方法显示它出来。

ViewFlipper继承了ViewAnimator,它可以调用addView添加多个组件,可以使用动画在多个组件间切换。

ViewFlipper与AdapterViewFlipper的区别是,ViewFlipper需要addView添加多个View,而AdapterViewFlipper只要传入一个Adapter。

ImageSwitcher继承了ViewSwitcher,因此具有和ViewSwitcher相同的特征,可以在切换View的时候使用动画效果。

使用ImageSwitcher只要以下两步:
1:为ImageSwitcher提供一个ViewFactory,该ViewFactory生成的View组件必须是ImageView。
2:需要切换图片时,只要调用ImageSwitcher的setImageDrawable,setImageResource和setImageURI即可。

ProgressBar是进度条控件,它还派生了2个常用组件:SeekBar和RatingBar。
通过style可以指定进度条的风格
@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:小环形进度条

ProgressBar提供了如下方法操作进度:
setProgress(int)---设置进度的百分比
incrementProgressBy(int)---设置进度条的增加或者减少 正数了加,负数为减。

SeekBar与ProgressBar非常相似,进度条用颜色填充进度,而拖动条用滑块的位置标识数值。

RatingBar与SeekBar的最大区别是:RatingBar是通过星星表示进度。

StackView也是AdapterViewAnimator的子类,以堆叠的方式显示列表项。

StackView提供两种控制方式:
1:拖走StackView中处于顶端的View,下一个View将会显示出来,将上一个View拖进StackView,将会显示拖进来的View。
2:通过调用showNext或者ShowPrevious控制下一个和上一个。

StackView属性:
loopView:true/false  是否允许循环

函数
startFlipping:开始播放
stopFlipping:停止播放
showPrevious:上一张
showNext:下一张

ExpandableListView是ListView的子类。

它所显示的列表项由ExpandableListAdapter提供。
实现ExpandableListAdapter有三种方式:
1:扩展BaseExpandableListAdapter。
2:使用SimpleExpandableListAdapter将两个List集合包装成ExpandableListAdapter。
3:使用SimpleCursorTreeAdapter将Cursor中的数据包装成SimpleCursorTreeAdapter。

AdapterView继承了ViewGroup,它本质是容器。
AdapterView可以包括多个列表项。
AdapterView显示的多个列表项由Adapter提供,调用AdapterView的setAdapter设置即可。

ListView与ListActivity
ListView有如下两种方式:
1:直接使用ListView进行创建
2:让Activity继承ListActivity

Adapter本身是一个接口,它派生了ListAdapter和SpinnerAdapter两个子接口。
其中ListAdapter为AbsListView提供列表项。
SpinnerAdapter为AbsSpinner提供列表项。

Adapter常用的实现类如下
ArrayAdapter:简单易用,通常是将数组或者List集合的多个值包装程多个列表项。
SimpleAdapter:功能强大的Adapter。
SimpleCursorAdapter:游标型的Adapter。
BaseAdapter:通常用于扩展自定义Adapter。

ArrayAdapter功能有限,它的每个列表项只能是TextView,如果需要复杂的列表项,需要使用SimpleAdapter。


ImageView

scaleType可以指定一下属性
matrix---ImageView.ScaleType.MARTIX:使用matrix方式
fixXY---ImageView.ScaleType.FIT_XY:对图片的横向,纵向独立缩放,使得该图片完全适应于该ImageView。
fitStart---ImageView.ScaleType.FIT_START:保持纵横比缩放图片,直到该图片完全显示在ImageView中。图片边长与ImageView边长相等,图片在ImageView左上角。
fitCenter---ImageView.ScaleType.FIT_CENTER:与Start相同,但是图片在中央。
fitEnd---ImageView.ScaleType.FIT_END:与Start相同,但是图片在右下角。
center---ImageView.ScaleType.CENTER:图片放中间,不进行任何处理
centerCrop---ImageView.ScaleType.CENTER_CROP:保持纵横比缩放图片,使得图片完全覆盖ImageView,只要图片最短的边能显示出来即可。
centerInside---ImageView.ScaleType.CENTER_INSIDE:保持纵横比缩放图片,使得ImageView完全显示图片。

ImageView还提供其他方法
setImageBitmap(Bitmap bm):使用Bitmap位图设置该ImageView显示的图片。
setImageDrawable(Drawable drawable):使用Drawable对象设置ImageView显示的图片。
setImageResource(int resid):使用图片资源ID设置要显示的图片。
setImageURI(Uri uri):使用图片的URI设置要显示的图片。



开发自定义View可以重载以下方法

onFinishInflate();当应用从XML布局文件加载该组件并利用它来构建界面后,此方法被回调
onMeasure(int,int);系统调用该方法来检测View组件及它包含的子组件的大小
onLayout(boolean,int,int,int,int);当该组件需要分配其子组件的位置,大小时候,该方法被回调
onSizeChanged(int,int,int,int);当该组件的大小被改变时候被回调
onDraw(Canvas);当该组件将要绘制它的内容时候回调该方法进行绘制
onKeyDown(int,KeyEvent);当某个键按下时候触发
onKeyUp(int,KeyEvent);当松开某个按键时候触发
onTrackballEvent(MotionEvent);当发生轨迹球事件时候触发
onTouchEvent(MotionEvent);当发生触摸屏事件时候触发
onWindowFocusChanged(boolean);当组件得到,失去焦点时候触发
onAttachedToWindow();当把该组件放入某个窗口时候触发
onDetachedFromWindow();当把该组件从某个窗口分离时候触发
onWindowVisibilityChanged(int);当包含该组件的窗口可见性发生改变时候触发


原创粉丝点击