Android  View measure的最终结果是把layout_width和layout_height所设置的相对值转换为具体值的过程。MeasureSpec的种类分为MeasureSpec.EXACTLY(确定的)、MeasureSpec.AT_MOST(最多)、MeasureSpec.UNSPECIFIED(没有限制)。对于一个View来说它的宽和高各有属于自己的specMode,至于其具体作用后面会有说说明,先来说说这三个变量的作用:

1、MeasureSpec.EXACTLY:”确定的“,意思是parentView希望childView的大小是确定的,为specSize.

2、MeasureSpec.AT_MOST:“最多”,意思是childView的大小最多是specSize指定的值。

3、MeasureSpec.UNSPECIFIED:“没有限制”,此时View的设计者可以根据自身的特性设置视图的大小。

measureSpec的参数是由parentView传递给childView的,目的是告诉childView 可以提供的实际尺寸。MeasureSpec提供了三个方法

1)makeMeasureSpec(int size,int mode):size参数由程序员自己设定,mode必须是specMode的三个值中的一个

2)getMode(int measureSpec):见名知意,方法返回specMode的三个值中的一个,注意方法参数measureSpec,这个参数的值是怎么得来的呢?正是由makeMeasureSpec方法计算出来的

3)getSize(int measureSpec):获取View的大小,方法

Android 测量流程详解相关推荐

  1. Android事件流程详解

    Android事件流程详解 网络上有不少博客讲述了android的事件分发机制和处理流程机制,但是看过千遍,总还是觉得有些迷迷糊糊,因此特地抽出一天事件来亲测下,向像我一样的广大入门程序员详细讲述an ...

  2. 《Android游戏开发详解》一1.8 控制流程第2部分——while和for循环

    本节书摘来异步社区<Android游戏开发详解>一书中的第1章,第1.8节,译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.8 ...

  3. Android App启动流程详解

    前言:在之前的文章中已经写了apk的打包流程.安装流程,今天就是梳理一下apk系列的最后的流程--app启动流程.经过今天的梳理以后咱们就可以对apk包是怎么编译生成的.apk是怎么被安装到安卓手机的 ...

  4. android zygote启动流程,Android zygote启动流程详解

    对zygote的理解 在Android系统中,zygote是一个native进程,是所有应用进程的父进程.而zygote则是Linux系统用户空间的第一个进程--init进程,通过fork的方式创建并 ...

  5. View的绘制-draw流程详解

    目录 作用 根据 measure 测量出的宽高,layout 布局的位置,渲染整个 View 树,将界面呈现出来. 具体分析 以下源码基于版本27 DecorView 的draw 流程 在<Vi ...

  6. View的绘制-layout流程详解

    目录 作用 根据 measure 测量出来的宽高,确定所有 View 的位置. 具体分析 View 本身的位置是通过它的四个点来控制的: 以下涉及到源码的部分都是版本27的,为方便理解观看,代码有所删 ...

  7. View系列 (三) — Measure 流程详解

    Measure 流程详解 一.概述 二.单一 View 的测量流程 1. 流程图 2. 源码分析 三.ViewGroup 的测量流程 1. 流程图 2. 源码分析 一.概述 测量过程分为 View的m ...

  8. 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...

  9. 杂志订阅管理系统c++_电池管理系统BMS功能安全开发流程详解

    点击上面 "电动知家"可以订阅哦! BMS功能安全开发流程详解 BMS和ISO26262 - BMS & ISO26262简介 BMS即Battery Management ...

最新文章

  1. http状态404 vscode_VS Code 调试完全攻略(5):基于浏览器的 React 应用
  2. R语言data.table导入数据实战:data.table中编写函数并使用SD数据对象
  3. [导入]Gentoo版Linux操作系统的前世今生 (3)
  4. 桌面壁纸的deepin或者uos水印如何去除
  5. (最新版2020)Java环境变量配置
  6. angular 居中_垂直居中的N种方法
  7. 仪器仪表的标定、检定、校准、校验的区别【图文详解】
  8. 搭建本地服务器中遇到无法启动FTP站点问题
  9. 为何学习大数据,要先学Java
  10. 2020电信宽带费用_电信宽带套餐价格表2020
  11. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte解决办法
  12. java 循环字母_java循环26个字母
  13. 章节十六:编码和文件读写
  14. Navicate管理工具的使用
  15. AE怎么制作流体文字效果?这波教程我真学会了
  16. JavaScript(js)的多次弹窗
  17. 企业信息化建设,不要轻易选择小众系统
  18. 鸢尾花python分类_鸢尾花分类——Python机器学习起步
  19. python-selenium爬取摩点客户购买信息(前端分析+爬虫代码)
  20. java-php-python-ssm艾灸减肥管理网站计算机毕业设计

热门文章

  1. javaSE I/O
  2. NLP自然语言处理系列- week6-文本生成案例(4)(PGN模型代码)
  3. min,max的优化
  4. 火影忍者ol手游今天未能连接服务器,火影忍者ol游戏上不去怎么办_火影忍者ol登录/安装失败解决方法...
  5. 2021浙江高考成绩名次查询,2020年浙江高考成绩位次排名及一分一段表查询
  6. 2021年新高考八省联考湖南成绩查询,八省联考湖南还没公布成绩?新高考模拟志愿填报,你准备好了吗?...
  7. jsp----JSP + Servlet + JavaBean开发模式
  8. Erlang项目编译及防止反编译
  9. 《分布式机器学习》-刘铁岩:全书汇总
  10. Netty框架学习之(一):Netty框架简介