View的getMeasuredWidth和getWidth有什么区别?

getMeasuredWidth 为view的测量宽度。

getWidth为view的最终宽度。

(这里只讨论宽度,高度也是一样的道理)

那么它们之间有什么区别呢?

测量宽度是在view的measure过程中形成的,而最终宽度是view的layout过程中形成的。这是它们之间的区别,它们的大小在大多数情况下都是相等的,只有在某些情况下会不相等,比如重写了view的layout方法:

@Override
    public void layout(int l, int t, int r, int b) {
        super.layout(l, t, r+10, b+10);
    }

这样子的话最终宽高就会比测量宽高多100px。

还有一种情况是View需要多次measure才能确定自己的测量宽高,在前几次的测量过程中,其得出的测量宽高有可能和最终宽高不一致,但最终来说测量宽高还是和最终宽高相同。

时间: 2024-11-07 19:54:20

View的getMeasuredWidth和getWidth有什么区别?的相关文章

View.VISIBLE、INVISIBLE、GONE的区别

android中UI应用的开发中经常会使用view.setVisibility()来设置控件的可见性,其中该函数有3个可选值,他们有着不同的含义: View.VISIBLE--->可见View.INVISIBLE--->不可见,但这个View仍然会占用在xml文件中所分配的布局空间,不重新layout View.GONE---->不可见,但这个View在ViewGroup中不保留位置,会重新layout,不再占用空间,那后面的view就会取代他的位置, 所以在使用时要小心,尤其要善用IN

ios开发之View属性hidden, opaque, alpha, opacity的区别

一.alpha 液晶显示器是由一个个的像素点组成的,每个像素点都可以显示一个由RGBA颜色空间组成的一种色值.其中的A就表示透明度alpha,UIView中alpha是一个浮点值,取值范围0~1.0,表示从完全透明到完全不透明. 1.alpha会影响自己的透明度,同时也会影响subView的透明度. 2.alpha设为空之后,UIView不会从响应者链中移除,仍然可以收到event. 3.更改alpha,默认是有动画效果的,这是因为图层在Cocoa中是由Core Animation中CALaye

进阶之路 | 奇妙的View之旅

前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 学习清单: View是什么 View的位置参数 View的触控 View的滑动 涉及以下各个知识点: View的各种滑动方式及其对比 弹性滑动 滑动冲突 View的动画 View的事件分发机制 View的工作原理 View的自定义方式 一.为什么要学习View? View,是Android中十分重要的一个知识点,是所有控件的基类,尽管View不属于四大组件,但是它的作用堪比四大组件,甚至重要性大于Conte

Android开发之getX,getRawX,getWidth,getTranslationX等的区别

转载请注明出处:http://blog.csdn.net/dmk877/article/details/51550031      好久没写博客了,最近工作确实挺忙的,刚刚结束了一个TV项目的开发,对于第一次开发TV项目的我表示:还是手机开发好啊.本来以为TV项目开发完了可以休息几天但是我还是想多了,哈哈,马上就要进行新项目的开发,唉,说多了都是眼泪啊,废话不多说咱们进入正题,今天和大家一起讨论的是android中的一些距离,可能在日常的开发中我们会经常遇到,但是有时候这几个概念又特别容易弄混,

Android视图View绘制流程与源码分析(全)

来源:[工匠若水 http://blog.csdn.net/yanbober] 1 背景 还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系: 看见没有,如上图中id为content的内容就是整个View树的结构,所以对每个具体View对象的操作,其实就是个递归的实现. 前面<Android触摸屏事件派发机制详解与源码分析一(

Android学习之自定义view详解

本文和大家分享的主要是android自定义view相关内容,一起来看看吧,希望对大家学习android有所帮助. 1.自定义View的属性 在 res/values/ 下建立一个 attrs.xml ,在里面定义属性和声明整个样式. <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="titleText" format="string

【读书笔记】【Android 开发艺术探索】第4章 View 的工作原理

一.基础知识 1.ViewRoot 和 DecorView ViewRoot 对应 ViewRootImpl 类,它是连接 WindowManager 和 DecorView 的纽带,View 的三大流程都是通过 ViewRoot 来完成的.在ActivityThread 中,当 Activity 对象被创建完毕后,会将 DecorView 添加到 Window 中,同时会创建 ViewRoot 对象. DecorView 添加到窗口 Window 的过程. 图片来自https://yq.ali

Android应用层View绘制流程与源码分析

Android应用层View绘制流程与源码分析 1 背景 还记得前面<Android应用setContentView与LayoutInflater加载解析机制源码分析>这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系: 看见没有,如上图中id为content的内容就是整个View树的结构,所以对每个具体View对象的操作,其实就是个递归的实现. 前面<Android触摸屏事件派发机制详解与源码分析一(View篇)>文章的3-1

Android应用层View绘制流程之measure,layout,draw三步曲

概述 上一篇博文对DecorView和ViewRootImpl的关系进行了剖析,这篇文章主要是来剖析View绘制的三个基本流程:measure,layout,draw,只有把这三个基本流程搞清楚了,平时在自定义View的时候才会有清晰的思路!开始进入正题. View的measure过程 三个流程均是从ViewRootImpl的performTraversals方法开始的,如下所示: private void performTraversals() { ...... int childWidthM