盘点自定义view里面容易混淆的获取控件属性的方法

view的绘制流程大概要经历这么几个方法:onMesure()----onLayout()----onDraw()


onMeasure测量子view的大小   

getMeasuredWidth(),getMeasuredHeight()测量出view的宽高。

注意:要在view树绘制完成以后才能测量出宽高信息。


onLayout 对子view进行排版  

onLayout()里面用控件调用layout()去排版。

 

onDraw :画出控件

padding表示控件的内容相对控件的边缘的边距,paddingleft()表示的是控件里面的内容距离该控件左边缘的距离;

layout_margin表示控件边缘相对父控件的边距,marginleft()表示整个控件左边距离父控件左边缘的距离。

关于getleft()getright()gettop(),getbottom(),getWidth()getHeight()这几个控件的关系是:

getRight() =getLeft() + getwidth()

getBottom()= getTop() + getHeight()

getWidth()getHeight()是获取子view本身的宽高属性。

view的几何性质就是它所在矩形的几何性质。一个view的位置用一对lefttop坐标表示,两个长度用widthheight来表示。位置和长度的单位是像素。

通过调用getLeft()getTop()可以得到一个View的位置。这两个方法返回的是相对于其父元素的位置,例如,如果getLeft()返回20,则表示它和其直接父元素的坐边界的距离是20像素。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值