美文网首页
自定义View的理解

自定义View的理解

作者: wjploop | 来源:发表于2019-08-27 11:04 被阅读0次
    • 为什么要做?

    普通的开发中,自定View的工作相对较少的,与其造轮子使用,现有的View(Widget,布局)一般都能满足我们日常的使用。但掌握造轮子的原理,对我们使用或改装轮子还是很有帮助。

    • 怎么做?

    一个无交互的View,包括测量,布局,绘制。
    对应View的3个回调方法:

    //测量当前View以及其内容(子View)
    //作为约定,在重写该方法之后,需要确定mMeasureWidth, mMeasureHeight
    onMeasure(int widthMeasureSpec, int heightMeasureSpec)
    
    //如何放置子View,即确定子View的位置
    void onLayout(boolean changed, int left, int top, int right, int bottom) 
    
    //在本视图在绘制什么
    void onDraw(Canvas canvas) 
    
    

    三个步骤,并不是都要实现的。
    比如一个Framelayout,作为承载View的容器,它不用绘制什么,仅仅是做好怎么放置子View的工作既可, 实现onMeasure() , onLayout()方法。
    而一个ImageView,用来展示一个图片,它的主要职责是确定好自己的大小以及如何绘制自身,需要实现onMeasure(), onLayout()

    相关文章

      网友评论

          本文标题:自定义View的理解

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