有关View类的描述: 1、View类是承接系统事件和显示事件的基础类,其依赖的系统基础是android的图形绘制和操作系统的提供的各种功能,在该类中,绘制是其核心部分,这些绘制包括决定其边界(pading)与滚动等操作绘制,View中提供了ViewManger和ViewParent,WindowManager等接口类供应用管理View,View是所有控件的基础。 2、ViewGroup本身是一个View类,所以当我们用之实现PageView的时候,就是让其自身作为一个Parent,而每一个Page作为child(addview和measure和layout的时候就可以分别加载上去,成为几页合并的大View),然后手指滑动的时候,整个当做一个View,滚动效果就出来了,而当里边的焦点改变的时候,又可以针对不同的View处理不同的事件。 而在frameworks\base\core\java\android\widget文件夹中,却描述了如下的情况: 3、layout,应用的XML文件中,定义了6类的layout,而这些layout都是ViewGroup,里边的具体控件都是其child,这些child被应用程序使用setcontentview或者inflate 调用,从而完成控件的布局。那么控件本身在XML中相当于ViewGroup的child,通过measure与layout和结合具体XML中的参数值,完成相关的布局,不同的布局结合不同的算法在屏幕上进行运算,尺寸,一是parent的赋予的尺寸,另一种是控件自身的尺寸,还有就是自定义的尺寸。 4、该目录中定义了android常使用的控件:TextView,ListView,ImageView,GridView,EditText,DigitalClock,DateTimeView,CheckBox,CalendarView 等与我们直接简单应用相关的控件,另外在这些控件与 View的继承过程中,往往也有中间的控件: ListView和GridView都来源于AbsListView,而AbsListView又继承AdapterView,ListAdapter继承Adapter和ViewGroup类,ViewGroup类进行绘制和View管理,事件处理,Adapter类负责提供数据方面的交互,这就是为什么我们在写gridview的时候,需要使用Adapter来管理View的数据。而我们发现类似于 GridView这种控件,其本身的 layout 包括 Measure和 layout都需要在此类中重写,以生成符合要求的和格式的GridView。 5、简单罗列下该目录下的各个文件的意义,这也是阅读代码的方式: .AbsListView ------ 列表类的基类,孩子: Listview GridView ,继承类 AdapterView (AdapterView继承Adapter 和ViewGroup),自身实现 view 按照 list模式加载 .AbsoluteLayout-------这是我们的layout之一,继承了ViewGroup,自身实现了按子类的定义参数进行layout功能 .AbsSeekBar-------孩子:seekbar(拖动条) ragingbar(评分条), 继承了Progressbar, Progressbar继承了View类, .AbsSpinner------继承类 AdapterView ,Spinner是一个每次只能选择所有项的一个项的控件 .ActivityChooserModel------A ctivity 管理类,存储 Activity的历史数据 .ActivityChooserView----继承了ViewGroup,实现了选择上面Activity的界面操作,左边按钮选择缺省的Activity, 右边按钮选择指定的Activity .Adapter-----数据和View 之间的管理通道接口类,函数功能在子类中实现 .AdapterView----继承了ViewGroup,是一个抽象类,该类实现了addview功能,事件处理功能,具体的adapter 类中的接口函数并没有在该类中实现。 .AdapterViewAnimator-----继承了AdapterView,仍然是一个抽象类,该类实现了OnMeasure和OnLayout 函数 功能,准备动画数据。 .AdapterViewFlipper---该类是一个实体类,继承了AdapterViewAnimator,动画效果为翻转 .Advanceable-----接口类,为AppWidgetHosts做基础,调用AppWidget. .AlphabetIndexer------实现SectionIndexer,是一个集合类DataSetObserver,功能实现了游标,提供索引标签, 使用户能够快速定位列表项。 .AnalogClock------模拟时钟,继承了View类 .AppSecurityPermissions-----管理APP权限 .ArrayAdapter-----数组型的Adapter .AutoCompleteTextView----继承了EditText ,功能实现了单词的联想输入功能 .BaseAdapter-----抽象类,实现于ListAdapter,SpinnerAdapter,完成数据和view的交互 .BaseExpandableListAdapter------抽象类,实现于ExpandableListAdapter,ExpandableList是一个分组并能实现 收缩的列表,等于是一个二级列表,选中一级列表可以显示一级列表对应的子类。 .Button------继承了TextView,该类并无强大功能,需要其他类来丰富之 .CalendarView------日历类,该类继承了FrameLayout,是一些view组织的视图集合,实现了日历功能 .Checkable------接口类,为CompoundButton使用 .CheckBox------继承了CompoundButton,用户使用该类 .CheckedTextView-----继承了TextView,实现了Checkable .Chronometer-----继承了TextView,实现了一个定时器功能 .CompoundButton------响应用户事件,变更操作视图,checkable管理 .CursorAdapter-----游标Adapter,继承了BaseAdapter,用来管理ListView的光标 .CursorFilter------游标过滤类,继承了Filter .CursorTreeAdapter------抽象类,继承了BaseExpandableListAdapter,具有过滤功能 .DatePicker-----日期选择,继承了FrameLayout .DateTimeView------事件选择,继承了TextView .DialerFilter------继承了RelativeLayout,实现按键输入的过滤 .DigitalClock------数字时钟,继承了TextView .EdgeEffect------滚动边缘效果 .EditText------继承了TextView,实现文本编辑功能 .ExpandableListAdapter------接口类,定义了ExpandableList需要的数据接口 .ExpandableListConnector------继承了BaseAdapter,处理了meta数据,还管理了二级数据(group)功能 .ExpandableListPosition------管理某一个一级数据对应信息 .ExpandableListView------继承了ListView,该功能可以管理child,为一级列表,而一级列表对应很多二级 列表,可以扩展或者收起来,用途广泛。 .FastScroller------用来绘制或者画AbsListView的滚动效果 .Filter------抽象类,实现数据过滤 .Filterable------接口类,就一个函数Filter getFilter() .FilterQueryProvider------接口类,实现功能过滤查询的CursorAdapter .FrameLayout------继承了ViewGroup,其child布局可以重叠,可以显示,可以放在任意位置(由参数决定) .Gallery------继承了AbsSpinner,它是一个View,实现的功能是图片显示及特效处理 .GridLayout------继承了ViewGroup,其child布局按照一格一格的方式进行布局 .GridView------继承了AbsListView,具体实现了OnMeasure,child View可以像表格一样显示。 .HeaderViewListAdapter------支持多个标题栏和尾注栏的ListAdapter .HeterogeneousExpandableList------接口类,定义ExpandableList的类型和数量 .HorizontalScrollView------继承了FrameLayout,实现了水平滚动条的效果 .ImageButton------继承了ImageView,实现图形按钮功能 .ImageSwitcher------继承了ViewSwitcher,ViewSwitcher继承了ViewAnimator功能,ViewAnimator是一个 FrameLayout,ImageSwitcher用来选择一些图片列表,常与 gallery一起使用,来浏览图片 .ImageView------ 继承了 View,用来显示图片 .LinearLayout------继承了ViewGroup,线性布局 .ListAdapter------接口类,继承了Adapter .ListPopupWindow-----被AutoCompleteTextView和Spinner使用,实现弹出窗口功能 .ListView-----继承了AbsListView,是简单的列表类(单一的) .MediaController------继承了FrameLayout,实现功能就是播放器(快进,快退等功能) .MultiAutoCompleteTextView-----继承了AutoCompleteTextView,功能更强大,可以多字符匹配, 比如QU可以匹配QuanZhou .NumberPicker------继承了FrameLayout,被TimePicker调用,设置时间,本身功能是数字选择 .OverScroller------滚动类,该类是一个算法程序,自身并不具有实体性质,仅仅记录位置变化,然后结合具体 的View,将View的位置进行滚动。 .PopupMenu------弹出菜单,实现MenuBuilder.Callback, MenuPresenter.Callback,该类实现用户接口功能, 并不具备绘制功能 .PopupWindow------弹出串口,该类具有绘制功能,调用后能够实体上显示弹出窗口 .ProgressBar------继承了 View,实现状态条功能 .QuickContactBadge------继承了ImageView,实现功能,电话簿联系人头像在点击的时候出现类似PopWindow的UI .RadioButton------继承了CompoundButton,单选按钮 .RadioGroup-------继承了LinearLayout,多个RadioButton按照线性布局进行排列 .RatingBar------继承了AbsSeekBar,实现功能评分条 .RelativeLayout------继承了ViewGroup,其child按照绝对位置进行布局 .RemoteViews------实现了Parcelable,Filter类,功能:描述视图的层次结构,这些视图可以显示在不同的进程中; 对布局完成的资源文件,本类还能修改其层次结构。这样可以在屏幕上实现多窗口播放和调度。 .RemoteViewsAdapter------继承了BaseAdapter,完成RemoteViewsService的数据处理工作 .RemoteViewsService------继承了Service功能,提供一个Adapter给请求的RemoteView .ResourceCursorAdapter------继承了CursorAdapter,“定义了视图的XML文件"来创建视图ListView .ResourceCursorTreeAdapter------继承了CursorTreeAdapter,”定义了视图的XML文件“来创建视图ExpandableListView .ScrollBarDrawable------继承了Drawable,用来显示滚动条 .Scroller------封装滚动,算法类,OverScroller可以越过视图的边界,而Scroller在视图类 .ScrollView------继承了FrameLayout,里边使用的OverScroller来计算滚动,view可以作为其孩子,从而实现多页效果 或者布局更多的View .SearchView------继承了LinearLayout,实现了CollapsibleActionView,搜索控件,搜索Provider提供的信息,并按照 线性列表方式进行显示 .SectionIndexer------实现Section功能(列表中的多段) .SeekBar------继承了AbsSeekBar,实现功能拖动条 .ShareActionProvider------继承了ActionProvider,是一个Provider:创建分享菜单,执行不同的Activity .SimpleAdapter------继承了BaseAdapter,将定义XML文件中的静态视图数据匹配为adapter, 可以是各式各样的视图 数据,如checkable的bool型,GridView的Image型,TextView的String型 .SimpleCursorAdapter------继承了ResourceCursorAdapter,XML定义View的adapter,主要用于TextViews 和ImageViews .SimpleCursorTreeAdapter------继承了ResourceCursorTreeAdapter,XML定义View的adapter,主要用于 ExpandableListView(数据类型为TextViews和ImageViews),把cursor的数据绑定到ExpandableListView .SimpleExpandableListAdapter------继承了BaseExpandableListAdapter,XML定义View的adapter,主要用于 ExpandableListView .SlidingDrawer------继承了ViewGroup,功能:将屏幕外的数据拖动进入屏幕内 .Space------继承了View,功能:在两个View之间创建GAP .SpellChecker------拼写检查类,在TextView和词典之间搭建桥梁 .Spinner------继承了AbsSpinner,用户控件,功能是可隐藏式列表菜单 .SpinnerAdapter------继承了Adapter,为Spinner提供适配器 .StackView------继承了AdapterViewAnimator,将子View放在堆栈中,通过堆栈的处理操作子视图 .SuggestionsAdapter------继承了ResourceCursorAdapter,实现了搜索索引功能,SearchView的适配器 .Switch------继承了CompoundButton,开关选择 .TabHost------继承了FrameLayout,实现功能:通过TAB切换不同的显示View .TableLayout-----继承了LinearLayout,按照表格的方式布局View .TableRow------继承LinearLayout,按照行的方式布局View .TabWidget------继承了LinearLayout,该类的容器为TabHost .TextSwitcher------继承了ViewSwitcher,文本切换,切换的时候可以显示动画特效 .TextView------继承了View,功能实现了文本控件 .TimePicker------继承了FrameLayout,实现了时间的选择 .Toast------界面上显示给用户消息 .ToggleButton------继承了CompoundButton,显示checked/unchecked状态 .TwoLineListItem------继承了RelativeLayout,两个textview .VideoView------继承了SurfaceView,播放Video文件 .ViewAnimator------继承了FrameLayout,进行视图切换时显示动画效果 .ViewFlipper------继承了ViewAnimator,实现Flipper特效(翻转) .ViewSwitcher------继承了ViewAnimator,切换视图,切换的时候可以显示动画特效 .WrapperListAdapter------继承了ListAdapter |
android view的应用
最新推荐文章于 2022-09-08 16:44:30 发布