Activity是Android
程序的显示层,每一个显示窗口都是一个Activity;可是Activity本身无法显示在屏幕上,我们可以把它理解成是一个抽象层,一个壳子;就譬如一个
JSP页面,它本身并没有显示出来任何东西,负责显示的是他生成的
HTML标签。那么Android里谁才是真正显示出来的部分?--是View和ViewGroup,ViewGroup其实也是View的子类。而Android程序借助View和ViewGroup对象来构建用户界面在Android应用程序中,用户界面是由View和ViewGroup对象来建立的。他们有很多的子类。View对象Adnroid开发平台用于用户界面表达的基础类集合,View类作为子类“widgets”的基类,widgets提供了完全实现的UI对象,比如textFields和ButtonsViewGroup是Layout类的父类,layout类提供了不同的布局结构,比如linear,tabularandrelative一个View对象就是一个数据结构,它的属性值都矩形屏幕布局对象的参数和内容,View对象需要去测量,布局,绘制,滚动,在矩形屏幕内的按键和手势。作为一个UI中的一个对象,View对象也是用户和事件接收者之间的一个交互和触发的点。ViewHierarchy(View层次结构)在Android开发平台,你可以按图所示的结构定义一个Activity的UI用View和ViewGroup节点。当然,你也可以自己建立一个用Android
系统中已经定义的widgets和layout或者自己创建的Views。
为了让Vewhierachy树在屏幕上表现出来,你必须在Acitivity中调用setContentView()方法并且向根节点对象传递引用。Android系统接收这个引用并用它是这个结构无效,被测量和绘制。根节点必须要求它的子节点自己绘制自己,ViewGroup自己也应使它的子View自绘。孩子节点绘向父节点申请一个位置空间和大小。但是父节点最后会决定孩子节点多大在哪里。Android系统是按照顺序来解析layout中的每个element,初始化Views和将他们加入到父节点中。因为他们是按顺序来绘制的,,如果有重叠的元素,那么最后一个绘制的将会位于先前绘制的顶层。Layout定义layout和表示ViewHierachy最
常用的方法就是用XMLlayout文件,在XML文件中每
个Element要么是View要么是ViewGrou对象或者他们的子类对象,View对象是树上的叶子节点,ViewGroup是树上的枝干XML中的element的名字与
Javaclass一致的,
创建一个TextView对象在UI,创建一个LinearLayoutViewGroup对象,当你把布局资源装载到内存中是,Android系统就会初始化这些运行时对象,与layout中一致Widgets(窗体小控件)UIEvents(UI事件处理)针对UI事件处理需要两个步骤:1、定义一个事件监听器并在将其注册2、重写已存在的回调方法Menus(菜单)OnCreatOptionMenu()andonCreateContextMenu()AdvancedAdaptersStylesandThmes
几个重要的ViewGroup类FrameLayoutLinearLayoutTableLayoutRelativeLayoutGallery
GridViewListViewScrollViewSpinnerSurfaceView
TabHostViewFlipperViewSwitcher
1、在layout文件中只能有一个根元素而且必须是ViewGroup,只能有一种布局然后再在里边嵌套布局2、