从小就语文不好,第一次写文章心里还是有点忐忑的~。这里主要是对看书学到的知识作总结,(发现以前的东西都忘了)废话不多说,直接进入主题吧。
主要解决俩个问题:
1.view支持wrap_content
2.padding要自己处理
拿画一个圆来说,先看下一普通平时的写法
这样写就简单实现了一个红色的实心圆,但是如果你在布局中修改padding值是无法生效的,还有宽高设为wrap_content时也是无效的。
为解决上面俩种问题,我们需要做如下处理:
1.padding值无法生效,解决这个问题其实很简单,就是在onDraw的时候,把padding值算进去,下面是代码
2.在wrap_content时无效,解决办法,在测量的时候得到宽高设置的模式和大小,做出判断
MeasureSpec.AT_MOST 是指父组件能够给出的最大的空间,也就是指wrap_content时,这里我给的默认值是200。
自定义属性太简单,这里就不说了。
代码不多,挺简单的,直接贴出完整代码吧
网友评论