Android对View的onMeasure方法理解

转载 2012年03月22日 15:30:19

  我们知道View在屏幕上显示出来要先经过measure和layout. 在调用onMeasure(int widthSpec, int heightSpec)方法时,要涉及到MeasureSpec的使用,MeasureSpec有3种模式分别是UNSPECIFIED, EXACTLY和AT_MOST, 那么这些模式和我们平时设置的layout参数fill_parent, wrap_content有什么关系呢。经过代码测试就知道,当我们设置width或height为fill_parent时,容器在布局时调用子view的measure方法传入的模式是EXACTLY,因为子view会占据剩余容器的空间,所以它大小是确定的。而当设置为wrap_content时,容器传进去的是AT_MOST, 表示子view的大小最多是多少,这样子view会根据这个上限来设置自己的尺寸。当子view的大小设置为精确值时,容器传入的是EXACTLY, 而MeasureSpec的UNSPECIFIED模式目前还没有发现在什么情况下使用。

  View的onMeasure方法默认行为是当模式为UNSPECIFIED时,设置尺寸为mMinWidth(通常为0)或者背景drawable的最小尺寸,当模式为EXACTLY或者AT_MOST时,尺寸设置为传入的MeasureSpec的大小。

  有个观念需要纠正的是,fill_parent应该是子view会占据剩下容器的空间,而不会覆盖前面已布局好的其他view空间,当然后面布局子view就没有空间给分配了,所以fill_parent属性对布局顺序很重要。以前所想的是把所有容器的空间都占满了,难怪google在2.2版本里把fill_parent的名字改match_parent.

android中对View的onMeasure()方法的理解

在android开发中,很多人对自定义View是望而生畏,我也一样,但这又是向高级进阶的必经之路,主要是对View里面的很多方法不知道怎么理解,其中一个就是onMeasure()方法,网上有很多这样解...

Android View.onMeasure方法的理解

View在屏幕上显示出来要先经过measure(计算)和layout(布局). 1、什么时候调用onMeasure方法?  当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,“你想要用...
  • RItilyN
  • RItilyN
  • 2012年11月27日 15:23
  • 341

Android UI学习|对View的onMeasure方法理解

Android UI学习|对View的onMeasure方法理解 转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1114...

Android UI--Android View.onMeasure方法的理解

View在屏幕上显示出来要先经过measure(计算)和layout(布局). 1、什么时候调用onMeasure方法?  当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,“你想要用...

Android自定义控件:图片比例适配,解决图片白边(详解View中onMeasure方法)

当App中涉及到布局需要展示大量图片时,你就应该考虑到“图片比例适配“的问题。当图片的宽高规格不同时,你设置展示的ImageView是否可以完好地展示,填充满?也就是说ImagView的比例和图片的比...

Android LayoutInflater深度解析 给你带来全新的认识(包含View的onMeasure方法)

本文出自:http://blog.csdn.net/lmj623565791/article/details/38171465 1、 题外话 相信大家对LayoutInflate都不陌生,...

Android中View的绘制过程 onMeasure方法

Android中View的绘制过程

Android:View的测量/onMeasure()方法解析

为了不做伸手党,就开始分享了。 参考书籍:《疯狂Android讲义 P48》   《Android群英传 P34——P37》 参考博客:http://www.cnblogs.com/zhuchengy...

Android之View.onMeasure()方法

View在屏幕上显示出来要先经过measure(计算)和layout(布局). 1、什么时候调用onMeasure方法?        当控件的父元素正要放置该控件时调用.父元素会问子控件一个问...
  • DQ1005
  • DQ1005
  • 2016年06月14日 13:03
  • 257

Android View中的onMeasure()方法详解

onMeasure()方法是哪里的?有什么用?有的人可能会有这种疑问,这里我们就来探讨下此方法 笔者上篇文章中的案例简单接触了onMeasure方法来实现方形View:Android实现正方形V...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android对View的onMeasure方法理解
举报原因:
原因补充:

(最多只允许输入30个字)