当前位置:首页 > 编程开发

Android屏幕元素相关概念详解

webgou16年前 (2010-08-08)编程开发128

在Android手机操作系统中有很多比较重要的知识点需要我们在学习的过程中详细了解以方便我们将来的应用。比如Android屏幕元素等等。在这里就会为大家详细介绍一下有关Android屏幕元素分层结构。

android.app.Activity

对于一个Android应用来说,android.app.Activity类实例是一个最基本的功能单元。一个Activity实例可以做很多的 事情,但是它本身无法显示在屏幕上,而是借助于Viewgroup和View,这两个才是Android平台上最基本的两个用户界面表达单元。

android.view.ViewGroup

ViewGroup是一个特殊的View类,它继承于android.view.View。它的功能就是装载和管理下一层的View对象和ViewGroup对象。ViewGroup是布局管理器(layout)及view容器的基类。
ViewGroup中,还定义了一个嵌套类ViewGroup.LayoutParams。这个类定义了一个显示对象的位置、大小等属性,view通过LayoutParams中的这些属性值来告诉父级,它们将如何放置。

在这里,继承于ViewGroup的一些主要的布局类如下:

1、FrameLayout:最简单的一个布局对象。它里面只显示一个显示对象。Android屏幕元素中所有的显示对象都将会固定在屏幕的左上 角,不能指定位置。但允许有多个显 示对象,但后一个将会直接在前 一个之上进行覆盖显示,把前一个部份或全部挡住(除非后一个是透明的)。

2、LinearLayout:以单一方向对其中的显示对象进行排列显示,如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行。同时,它还可以对个别的显示对象设置显示比例。

3、TableLayout:以拥有任意行列的表格对显示对象进行布局,每个显示对象被分配到各自的单元格之中,但单元格的边框线不可见。

4、AbsoluteLayout:允许以坐标的方式,指定显示对象的具体位置,左上角的坐标为(0, 0),向下及向右,坐标值变大。这种布局管理器由于显示对象的位置定死了,所以在不同的设备上,有可能会出现最终的显示效果不一致。

5、RelativeLayout:允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局。如一个按钮可以放于另一个按钮的右边,或者可以放在布局管理器的中央。
在Android中,提供了很多的布局管理器,这里也不一一列举,开发者可以根据实际需要,选择合适的布局管理器。

android.view.View

View是所有view类的基类,一个view通常占用Android屏幕元素上的一个矩形区域,并负责绘图及事件处理。View是所有窗体部件的 基类,是为窗体部件服务的,这里的窗体部件即UI控件,如一个按钮或文本框。Android已经为我们提供了一系列的标准UI控件供我们直接使用,同时, 我们也可以通过继承于 View类或View的子类,来实现我们自定义的UI控件。

要定制我们自己的UI控件,需要重载View类中的一些方法,以下表格列出View提供出来的,供重载的方法,这些方法不必都要重载,但至少要实现onDraw(android.graphics.Canvas)方法。

当你为一个 activty 添加一个可见的 view, 并且运行这个activty时,android通常情况下会自动按照下列顺序来触发view的相关事件

  1. onAttachedToWindow  
  2. onMeasure  
  3. onSizeChanged  
  4. onLayout  
  5. onDraw  

对于Android应用中的一个屏幕,Android屏幕元素是按层次结构来描述的。要将一个屏幕元素层次树绑定在一个屏幕上显 示,Activity会调用它的 setContentView()方法并且传入这个层次树的根节点引用。当Activity被激活并且获得焦点时,系统会通知activity并且请求根 节点去计算并绘制树,根节点就会请求它的子节点去绘制它们自己。

Android屏幕元素中每个树上的ViewGroup节点会负责绘制它的子节点。ViewGroup会计算它的有效空间,布局所有的子显示对象, 并最终调用所有的子显示对象的 Draw()方法来绘制显示对象。各个子显示对象可以向父对象请求它们在布局中的大小和位置,但最终决定各个子显示对象的大小和位置的是父对象。

来源:CSDN

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=226

标签: android界面
分享给朋友:

“Android屏幕元素相关概念详解” 的相关文章

位图数据内存优化

优化主界面内存占用点滴: 目的:在系统资源有限的情况下,使占有内存能控制在50M 一共41张图片: 1.用cs4工具,自带解析图片:内存从24M-58M 2.URLoader, 一张张解码,用完释放,发现解码速度太慢,造成内存泄漏,达不到效果…

大端小端(Big- Endian和Little-Endian)

字节序(Endian),大端(Big-Endian),小端(Little-Endian)…

DirectShow编程(2)- 开始DirectShow旅程

2. 开始DirectShow旅程    这个章节的内容主要是编写DirectShow应用所需的一些基本概念,可以把它当作一个高级介绍,理解这些内容只需具备一般的编程和有关多媒体的知识。2.1. 设置DirectShow开发的编译环境   …

Eclipse中65536问题记录

[2017-05-11 12:22:00 - Dex Loader] Unable to execute dex: method ID not in [0, 0xffff]: 65536[2017-05-11 12:22:00 - app] Conversion to Dalvik format f…

c语言书籍

《C专家编程》 《C和指针》 《C陷阱与缺陷》 《C语言解析教程第5版》 《C primer plus 》 《The C Programming Language》 《C语言核心技术》…

iPhone的操作系统介绍MacOS X

摘要:Mac OS X 使用基于 BSD Unix 的内核,并带来Unix风格的内存管理和抢占式多任务处理 (pre-emptive multitasking)。大大改进内存管 理,允许同时运行更多软件,而且实质上消除了一个程序崩溃导致其它程序崩溃的可能性。...…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。