概述:

控件是每个Adnroid APP都必不可少的一部分,无论是使用系统控件还是使用自定义控件。这些控件组成了精美的界面。
本章将讲解Android控件架构,以及如何实现自定义控件。
本章你讲了解到以下内容:

  • Android控件架构
  • View的测量和绘制
  • ViewGroup的测量和绘制
  • 自定义控件的三种方式
  • 事件的拦截机制

Android控件架构

Android控件大致可以分为两类

  • ViewGroup控件
  • View控件

ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。

通过ViewGroup,整个界面上的控件形成了一个树形结构,即我们常说的控件树,上层控件负责下层子控件的测量与绘制,并传递交互事件。

通常在Activity中使用findViewById()方法,就是在空间树中以树的深度优先遍历来查找对应元素。

在每棵控件树的顶部,都有一个ViewParent对象,这就是整棵树的控制核心,所有的交互管理时间都有它来统一调度和分配,从而可以对整个视图进行整体控制。如下图所示:


View的测量和绘制


ViewGroup的测量和绘制


自定义控件的三种方式

事件的拦截机制

Android空间架构与自定义控件详解-更新中相关推荐

  1. Redis详解-更新中

    目录 一.Redis 是什么 二.Redis 的特点和功能 三.Redis 缓存的使用 四.Redis 为什么能这么快 五.Redis 缓存的淘汰策略 六.Redis 持久化 1.为什么需要持久化 2 ...

  2. Android Telephony分析(二) ---- RegistrantList详解

    前言 本文主要讲解RegistrantList的原理,以及如何快速分析RegistrantList相关的代码流程.  在Telephony模块中,在RIL.Tracker(ServiceStateTr ...

  3. libraries 和android runtime之间的关系,《Android Studio应用开发实战详解》——第1章,第1.3节Android系统架构...

    本节书摘来自异步社区<Android Studio应用开发实战详解>一书中的第1章,第1.3节Android系统架构,作者 王翠萍,更多章节内容可以访问云栖社区"异步社区&quo ...

  4. iPhone和Android的WEB应用开发详解

    iPhone和Android的WEB应用开发详解 在我们现在的生活中,移动设备的作用日益重要.我们使用它们进行交流.我们使用它们进行导航.我们甚至可以将它们用作方便的手电筒.面向 iPhone 和 A ...

  5. 2010年系统架构师考试题详解

    原文地址为: 2010年系统架构师考试题详解 考试科目一:综合知识 采用微内核结构的操作系统提高了系统的灵活性和可扩展性,(1) (1)A.并增强了系统的可靠性和可移植性,可运行于分布式系统中 B.并 ...

  6. 2015年系统架构师考试题详解

    原文地址为: 2015年系统架构师考试题详解 考试科目一:综合知识 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,-,n)管理机票销售.假设Tj(j=1,2,-, ...

  7. Android网络开发技术实战详解

    <Android网络开发技术实战详解> 基本信息 作者: 朱桂英 丛书名: Android移动开发技术丛书 出版社:电子工业出版社 ISBN:9787121173493 上架时间:2012 ...

  8. 2011年系统架构师考试题详解

    原文地址为: 2011年系统架构师考试题详解 考试科目一:综合知识 操作系统为用户提供了两类接口:操作一级和程序控制一级的接口,以下不属于操作一级的接口是(1). (1)A.操作控制命令 B.系统调用 ...

  9. JNI开发之-Android.mk和Application.mk 详解

    Android.mk和Application.mk 详解 Android.mk 基础知识 变量和宏 NDK 定义的 include 变量 目标信息变量 模块描述变量 NDK 提供的函数宏 Applic ...

最新文章

  1. Mysql字符串字段判断是否包含某个字符串的3种方法
  2. Altium Designer隐藏或显示元件名字
  3. Oracle11g EM界面乱码解决方法
  4. HTML字符实体大全
  5. Effective系列经典著作,铺就程序员殿堂之路
  6. Lumen开发:结合Redis实现消息队列(3)
  7. Cisco 证书查询
  8. java web整合开发pdf_Java Web整合开发王者归来.pdf
  9. 水下机器人 结构设计
  10. 北京工业大学外网访问知网数据库方法
  11. 台式计算机型号在哪里看,台式电脑主板型号在哪里看
  12. Navicat 图形化界面工具
  13. 银河5 号超级计算机,超级计算器前五名:中国“霸占”第一和第二【图】
  14. ORA-3136错误解决
  15. 最是那一低头地温柔(徐志摩经典爱情语录)
  16. Photoshop-预览图片的方式
  17. 【收集】NLP语料库数据集+持续更新
  18. 电子技术与计算机软件杂志,《电子技术与软件工程》杂志社
  19. 360N5全网通QPST备份NV和恢复教程
  20. GBase 8a mpp 在线节点替换功能

热门文章

  1. C++函数模板的重载
  2. python提取字符串中的 中文 日文 韩文
  3. subplot 真正含义
  4. java jni.h_java-如何使jni.h被找到?
  5. 77. Leetcode 1439. 有序矩阵中的第 k 个最小数组和 (堆-技巧二-多路归并)
  6. crontab用法疑云
  7. Youtube推荐系统是如何挖掘用户内心另一面的
  8. 【机器学习PAI实践二】人口普查统计
  9. 日常SQL常见问题(二)
  10. 如何判断服务器之间的服务是否可用?ping 还是 telnet?