美文网首页
自定义View

自定义View

作者: _爱笑的eyes | 来源:发表于2019-06-24 08:37 被阅读0次

    我在项目中脸球这个项目中的话我是用自定义View完成了一个下拉选择切换城市的一个控件.实现自定义View的话我们要进行计算然后布局摆放然后再绘制出来

    首先我们进行计算我们先走onMeasure()这个方法调用了setMeasureDimension()通过测量父窗体的模式和对我们的宽高进行重新绘制,给我们View重新替换最新的宽高,然后调用

    setMeasureDimensionRaw()这个方法将我们最新的宽高赋值给我们当前类的宽高.然后我们再去进行布局摆放,首先还是要通过onMeasure进行测量 然后将获取到的距离代替以前的距离,

    然后通过setFrame()方法进行判断如果原来的值与现在的值有一个不同就会发生改变,然后再测量出最新的宽高与之前的宽高作比较,如果有一个不一样就说明它的尺寸发生了改变他就会走

    invalidate(sizeChanged)这个方法,这个方法的作用就是用来重新绘制的,然后再通过setLeftTopRightBottom()设置顶点,再通过sizeChanged()这个方法来调整尺寸.接着我们就去

    绘制,我们主要使用onDraw()和dispatchDraw()这两个方法,发现这两个方法是空方法需要我们覆写,我们点进ViewGroup的dispatchDraw()这个方法,发现里面有一个childer这个数组

    我们通过getAndVerifyPreorderedView这个方法获取一个child,然后会调用drawChild()这个方法,这个方法里面会通过child.draw()去绘制子View onDraw()也是一样的.

    相关文章

      网友评论

          本文标题:自定义View

          本文链接:https://www.haomeiwen.com/subject/ajngqctx.html