结论:getMeasuredWidth()获取的是view原始的大小,也就是这个view在XML文件中配置或者是代码中设置的大小。getWidth()获取的是这个view最终显示的大小,这个大小有可能等于原始的大小也有可能不等于原始大小。

1.getMeasuredWidth

从源码上来看,getMeasuredWidth()获取的是mMeasuredWidth的这个值。这个值是一个8位的十六进制的数字,高两位表示的是这个measure阶段的Mode的值,具体可以查看MeasureSpec的原理。这里mMeasuredWidth & MEASURED_SIZE_MASK表示的是测量阶段结束之后,view真实的值。而且这个值会在调用了setMeasuredDimensionRaw()函数之后会被设置。所以getMeasuredWidth()的值是measure阶段结束之后得到的view的原始的值。

2.getWidth()

那么问题来了,mRight和mLeft是什么值,是在什么时候被设置的。我们再看layout阶段的源码:

在layout阶段会去调用setOpticalFrame()或者调用setFrame()方法,从源码中可知setOpticalFrame()方法,最终还是调用的setFrame()方法。

所以最终的mLeft和mRight的值是在setFrame()方法中被设置的。而且这些mLeft,mRight代表了view最终显示在界面中的大小。

3.下面我们自定义一个简单的ViewGroup,在layout阶段改变left,right的值,观察getMeasuredWidth()和getWidth()方法之间的区别。

在这个demo中,我们给textview设置宽度为100px,但是在layout阶段给它加大到200,最终结果是:点击width按钮,显示为200,点解measuredWidth按钮显示为100.

总结

以上所述是小编给大家介绍的浅析Android中getWidth()和getMeasuredWidth()的区别 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对脚本之家网站的支持!

android get width单位是什么意思,浅析Android中getWidth()和getMeasuredWidth()的区别相关推荐

  1. android培训讲师介绍,安卓培训讲师浅析android项目重点知识

    原标题:安卓培训讲师浅析android项目重点知识 在应用程序之前,必须创建一个相应的Android项目.如果你使用Eclipse开发的话,那就是创建一个Eclipse项目.这个项目用来保存所有源代码 ...

  2. 浅析JQuery中的html(),text(),val()区别

    1.HTML html():取得第一个匹配元素的html内容.这个函数不能用于XML文档.但可以用于XHTML文档 html(val):设置每一个匹配元素的html内容.这个函数不能用于XML文档.但 ...

  3. vue方法调用失败后多次调用_浅析Vue中 computed / watch / methods的区别

    思考:请说下Vue中computed 和 watch 的区别( 面试题 ) 构造选项 computed / watch / methods computed ● computed 起初构想 在Vue的 ...

  4. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

    理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net 全局作用域中,用 const 和 l ...

  5. php strlen 线程安全,浅析PHP中strlen和mb_strlen的区别

    在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别. 下面通过例子,讲解这两者之间的区别. 先看例子: //测试时文件的编码 ...

  6. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

  7. [免费专栏] Android安全之静态逆向APK应用浅析「手动注入smali」+「IDA Pro静态分析so文件」+「IDA Pro基础使用讲解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  8. 【转】浅析Android动画(二),属性动画高级实例探究

    2019独角兽企业重金招聘Python工程师标准>>> ObjectAnimator实现属性动画 为了写好Android动画这几篇博客,在动笔之前我是下过很大决心的,我对自己的要求是 ...

  9. Android 系统(56)---深入浅析Android坐标系统

    深入浅析Android坐标系统 1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自定义控件,但是大多数都是授之以鱼,却很少有较为系统性授之于渔的文章,同时由于自己也 ...

最新文章

  1. 想要求职Web安全相关的岗位,你就必须要懂的知识
  2. CRT 入口函数 CRTStartup
  3. Windows 7平台安装Oracle Client 10g版本时需要做的一点变更
  4. LeetCode 437. 路径总和 III(双重递归)
  5. 输入两个链表,找出它们的第一个公共结点
  6. 卢伟冰:Redmi K30会支持全网通5G 雷军:必须的!
  7. Cilium提供并透明地保护应用程序工作负载之间的网络连接和负载平衡:什么是eBPF和XDP?
  8. spring扫描linux上问题,Spring MVC 自动扫描注解失效原因
  9. 无法在C语言软件里敲字,网页上不能输入文字怎么办
  10. Intel 1Gb/10Gb网卡在多核处理器中使用的加速技术
  11. Swift -- AVPlayerViewController播放本地视频并且通知重复播放
  12. Arduino开发教程
  13. android中按两次返回键返回桌面或退出程序
  14. 帆软内置数据集实现决策报表联动
  15. linux如何使用sin函数,Ubuntu下使用make编译c文件,不能调用sin cos 等函数问题的解决...
  16. 二.ARM裸机学习之S5PV210刷机
  17. 希望各位博友解答一下
  18. 乐高幻影忍者推出十周年复刻经典套装;炸鸡大师Popeyes开设首家南京旗舰店 | 美通企业日报...
  19. 基本sctp套接字编程及实例讲解
  20. Java毕设项目物流车辆规费管理系统的设计与实现(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 从 ASP.NET Core 2.1 迁移到 2.2 踩坑总结
  2. 数据分析处理——透析表和交叉表
  3. 剑指offer--3
  4. Eclipse中使用Gradle构建Java Web项目
  5. CSerialPort串口类最新修正版(解决关闭死锁问题)
  6. java各种排序实现
  7. 漫天飞舞的蒲公英你是我的幸福吗
  8. python提取excel数据视频_Python-爬取b站的热门视频并导入Excel中
  9. win8中文_免费文字转语音软件,支持男女中文英文混读,且用且珍惜!!
  10. pythonfor循环if中断怎么使用_如何在for循环中只运行一次if?