在介绍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所处的位置,不过这不是我们这个专题需要探讨的东西,不过能帮助大家理解。

android 主界面 布局,Android用户界面与View/ViewGroup相关推荐

  1. Android项目:手机安全卫士(3)—— 主界面布局

    Android项目:手机安全卫士(3)-- 主界面布局 1 总纲 前面实现了"手机安全卫士"的闪屏界面与版本检测升级问题,接下来的任务就是实现主界面了,这个相对简单,因为没有涉及到 ...

  2. Android常见界面布局

    第2章 Android常见界面布局 第2章 Android常见界面布局 2.1 View视图 2.2 界面布局编写方式 2.2.1 在XML文件中编写布局 2.2.2 在Java代码中编写布局 2.3 ...

  3. android+主界面所有应用程序图标添加统一背景主题,Android 4.0替Launcher主界面所有应用程序图标添加统一背景主题...

    当前位置:我的异常网» Android » Android 4.0替Launcher主界面所有应用程序图标添加 Android 4.0替Launcher主界面所有应用程序图标添加统一背景主题 www. ...

  4. 基于数据挖掘的旅游推荐APP(二):主界面布局

    主界面布局通过Fragment实现,底部类似于Tab选项卡,效果如下: 底部导航栏是借鉴GitHub上的一个项目,不对,其实就是抄的.附上原地址链接,把库引进来直接用就行了.下面上代码: activi ...

  5. easyui主界面布局easyui-layout用法一例

    easyui主界面布局easyui-layout用法一例 例一: <body id="topBody" style="padding: 0px 0px 0px 0p ...

  6. 在线拍卖系统后台,主界面布局,逻辑

    这里写自定义目录标题 主界面布局 菜单栏&逻辑(未设置样式) 主界面布局 布局依旧采用的是大众款,(标题栏+菜单栏+主界面),因没设置资源字典,这里不多说,直接上代码吧 <Window ...

  7. android 开发打赏布局,Android自定义View模仿虎扑直播界面的打赏按钮功能

    Android自定义View模仿虎扑直播界面的打赏按钮功能 发布时间:2020-09-28 12:15:53 来源:脚本之家 阅读:77 作者:shenhuniurou 前言 作为一个资深篮球爱好者, ...

  8. Android常见界面布局(详细介绍)

    一.View视图 所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用的用户界面来说,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包 ...

  9. 三种实现Android主界面Tab的方式

    转载于:https://www.cnblogs.com/caobotao/p/5103673.html 在平时的Android开发中,我们经常会使用Tab来进行主界面的布局.由于手机屏幕尺寸的限制,合 ...

  10. android win8风格布局,Android仿Win8界面开发

    本文将要模仿Win8界面的一个设计,一个一个的方块.方法很简单.这里自己把图片改改就可以成为自己想要的界面了. 1.首先来看看自定义的MyImageView: package com.example. ...

最新文章

  1. PCL:最小特征值与特征向量为什么可以表示法向量??
  2. 进击时代!王雪红的谦卑与坚守
  3. 软件测试培训分享:性能测试的目的是什么
  4. UVA1601万圣节的早上
  5. 什么技术能改变世界?
  6. python语言及其应用电子版翁正秋_Python语言及其应用
  7. k8s:koolshare软路由安装及k8s基本环境配置
  8. 新购阿里云服务器ECS创建之后无法ssh连接的问题处理
  9. Mac电脑卡在启动模式了怎么办?
  10. 深入分析自定义表单验证与Cookies
  11. 驱动该如何入门 关于file_operations和Linux设备模型
  12. 谷歌字体 Google Fonts
  13. kafka从入门到精通:马士兵java集合
  14. 数学知识学习之——商空间(Quotient Spaces)
  15. 理论力学知识要点归纳(三)
  16. 股票集合竞价规则详解,什么是集合竞价?集合竞价技巧分析
  17. 大数据应用常见的6种商业模式
  18. 电影《诛仙Ⅰ》:“IP加流量的话”现在还可以行得通吗
  19. linux系统时间不同步解决办法(同步本地时间)
  20. Facebook母公司Meta将开设第一家商店。这里是里面的样子

热门文章

  1. 【翻译】MongoDB指南/CRUD操作(二)
  2. Quartz入门到精通
  3. 【Matlab学习笔记】保存图片(待续)
  4. 智能优化算法:闪电连接过程算法 - 附代码
  5. 高级GIS-0.整体裁剪
  6. 函数和结构(C++)
  7. ArcGIS Pro 有多强大?(一)
  8. python集合和序列解包
  9. 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定。
  10. html5画电池状态,JavaScript里获取电池状态的方法