android view的应用

来源:互联网 发布:mac 大写灯不亮 编辑:程序博客网 时间:2024/05/29 16:36
有关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
0 0
原创粉丝点击