• Android用户界面与View/ViewGroup

    布局基本问题
    服务器君一共花费 19.334 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    在介绍Android中的布局问题之前,不得不先介绍一下Android中的用户界面,因为布局问题也是用户界面问题之一。在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种Views和ViewGroups,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。View很重要,很多控件都继承自它。

    View类:extends Object

    implements Drawable.Callback / KeyEvent.Callback / AccessibilityEventSource

    这个类表示用户界面组件的基本构建块,一个View占据屏幕上的一个矩形区域,并负责绘图和事件处理。View类是widgets的基类,widgets用于创建交互式UI组件(buttons、text fields等)。View类的直接子类ViewGroup类是layouts的基类,layouts是不可见的容器用户保持其他Views或者其他ViewGroups和定义它们的布局属性。

    一个View对象是一个数据结构,它的属性存储屏幕上一个特定矩形区域的布局参数和内容。一个View对象处理它自己的测度、布局、绘图、焦点改变、滚动、键/手势等与屏幕上矩形区域的交互。作为用户界面中的对象,View也是与用户交互的一个点且交互事件接收器。

    在Android平台上,你定义活动的UI使用的View和ViewGroup节点的层次结构如下图所示。根据你的需要这个层次树可以是简单的或复杂的,并且你能使用Android预定义的widgets和layouts集合,或者使用自定义的Views。

    视图层次结构

    为了将视图层次树呈现到屏幕上,你的活动必须调用setContentView()方法并且传递到根节点对象的引用。Android系统接收这个引用并使用它来验证、测度、绘制树。层次的根节点要求它的孩子节点绘制它自己——相应地每个试图组节点要求调用自己的孩子视图去绘制他们自己。子视图可能在父视图中请求指定的大小和位置,但是父视图对象有最终决定权(子视图在哪个位置及多大)。因为它们是按序绘制的,如果元素有重叠的地方,重叠部分后面绘制的将在之前绘制的上面。

    应用程序窗口内部所包含的视图对象的实际类型为DecorView。DecorView类继承了View类,是作为容器(ViewGroup)来使用的,它的实现如下图图所示:

    DecorView类的实现

    在这幅图中,可以理解Views和ViewGroups所处的位置,不过这不是我们这个专题需要探讨的东西,不过能帮助大家理解。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [PHP程序设计] 声明式编程范式 12 个条目
  2. [Python程序设计] Python数据类型 11 个条目
  3. [JavaScript程序设计] 关于HTTP Keep-Alive 6 个条目
  4. [移动开发] Android View注入框架Butter Knife 3 个条目
  5. [计算机算法] 从双端队列引出的卡特兰数 3 个条目
  6. [移动开发] Content Provider内容提供者 3 个条目
  7. [移动开发] 简单了解Android Fragment 3 个条目
  8. [智力开发与知识管理] 超越整体性学习 5 个条目
  9. [计算机算法] TAOCP与算法 12 个条目
  10. [移动开发] Android与SQLite数据库 7 个条目
  11. [Python程序设计] Python语言概述 6 个条目
  12. [智力开发与知识管理] 信息的类型与结构 9 个条目
窗口 -- [博客]