1、ProgressBar及其子类
ProgressBar就是进度条,用于显示进度。要注意的是Android里面拖动条SeekBar也是从进度条派生出来的。
Android里面的进度条主要有水平和环形的两种。
具体还可以分为精确显示进度和不精确显示进度的。
进度条还可以显示在标题上。具体方法为调用Activity的requestWindowFeature()方法,传入
Window.FEATURE_INDETERMINATE_PROGRESS或Window.FEATURE_PROGRESS。
然后调用Activity的setProgressBarVisibility(boolean)或setProgressBarIndeterminateVisibility(boolean)。
拖动条SeekBar继承了ProgressBar,因此ProgressBar所支持的xml属性和方法完全适用于SeekBar
SeekBar还允许通过android:thumb来指定一个drawable对象,作为自定义的滑块。
RatingBar是一种特殊的拖动条,它通过星星来表示进度。可以通过xml属性来设置总共的星星个数,以及每次至少需要改变几个星。
2. ViewAnimator及其子类
ViewAnimator继承自FrameLayout,因此它表现出FrameLayout的特征。即,可以将多个View组件叠在一起。
ViewAnimator额外的功能在于可以在View切换时表现出动画效果。
继承关系图
2.1 ViewSwitcher
ViewSwitcher可以将多个View重叠在一起,一次只显示一个View。
当程序控制从一个View切换到另一个View时,ViewSwitcher支持指定动画效果。
为了给ViewSwitcher添加多个组件,一般通过调用setViewFactory给它设置一个ViewFactory
然后通过ViewFactory的makeView方法生成View组件对象。
ImageSwitcher用法和ViewSwitcher类似,不过有个限制条件就是ViewFactory的makeView方法生成的View必须是ImageView。
同理,TextSwitcher的限制条件就是ViewFactory的makeView方法生成的View必须是TextView。
2.2 ViewFlipper
ViewFlipper和AdapterViewFlipper非常类似,不同的是
AdapterViewFlipper只需要设置Adapter,由Adapter来负责提供多个View
而ViewFlipper可以通过addView(View)添加,也可以在xml布局文件里预先添加好多个View。