view的绘制

MeasureSpec

View的MeasureSpec由父容器的MeasureSpec以及自身的LayoutParams决定的;

[图片上传失败...(image-67326b-1706696414006)]

1:当父容器是Exactly模式

如果子view是Exactly模式(当用户指定了具体的数值(宽/高)),那么这个子view的resultSize就是你赋值的这个具体的值;

如果子view指定是match_parent,那么子view的resultSize依然是父容器给与的最大值,模式还是exactly;

如果子view指定的是wrap_content,那么子view的resultSize还是父容器给与的最大值,但是模式就变成了at_most;

2:当父容器是At_most模式

如果子view是Exactly模式(当用户指定了具体的数值(宽/高)),那么这个子view的resultSize就是你赋值的这个具体的值;

如果子view指定是match_parent,那么子view的resultSize依然是父容器给与的最大值,模式还是at_most;

如果子view指定的wrap_content,子view的resultSize就是父控件的size,模式是at_most;

3:当父容器是Unspecified(这个模式我们基本用不到,大部分都是系统内部使用)

如果子view是Exactly模式(当用户指定了具体的数值(宽/高)),那么这个子view的resultSize就是你赋值的这个具体的值;

如果子view指定的是match_parent,子view的大小为0;模式为Unspecified;

如果子view指定的是wrap_parent,子view的大小为0;模式为Unspecified;

getLeft,getRight,getTop,getBottom,getWidth(),getHeight();

Getleft:子view的左边界到父view的左边界的距离;

getRight:子view的右边界到父view的左边界距离;

getTop:子view的顶部到父view的顶部距离;

getBottom:子view的底部到父view的顶部距离;

getWidth: getRight-getleft;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容