Android中自定义控件的一些问题

自定义的控件设置layout_width和layout_height的值,和在
onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法中的参数有什么关系,为什么使用getMeasuredHeight()和getMeasuredWidth()获取的值和layout_width的值不一样???

首先xml定义的值是你所期望的值 在实际中 可能由于父布局的种种限制 造成你期望的值和实际值不相等
再者由于dp是适配值,所以在不同的手机上,最终测量出来的是px值,自然就不尽相同.

layout_width 的值是布局的

你如果xml里,用px就会发现,两个值就算不一样也差不多,安卓手机的计算方式和代码是有一定差别的,另外你说的onmeasure,的宽高得到的是xml里设置的大概宽高,例如设置match,这边对应有一个atmost,这个是设置后面画布啊这些的整体大小的

注意xml里面配置的单位可以是dp/dip/px,dp(dip)和px有转换关系,每个手机都可能不一样。getMeasuredHeight()和getMeasuredWidth()返回的单位是px