美文网首页
自定义View - 17.draw()源码分析

自定义View - 17.draw()源码分析

作者: zsj1225 | 来源:发表于2018-07-01 19:31 被阅读5次
    performTraversals{
    
        //绘制
        performDraw();
    }
    
    private void performDraw() {
        draw(fullRedrawNeeded);
    }
    
    
    private void draw(boolean fullRedrawNeeded) {
        if (!drawSoftware(surface, mAttachInfo, xOffset, yOffset, scalingRequired, dirty)) {
                        return;
        }
    }
    
    private boolean drawSoftware(){
        mView.draw(canvas);
    }
    
    public void draw(Canvas canvas) {
        //绘制背景
        drawBackground(canvas);
    
        //绘制自己
       if (!dirtyOpaque) onDraw(canvas);
    
        //绘制子View
       dispatchDraw(canvas);
    
       //绘制前景,scrollbars
       onDrawForeground(canvas);
    }
    

    对于ViewGroup首先绘制自己的背景,for循环绘制子View调用子View的draw()方法.
    对于view绘制自己的背景,绘制自己的背景和自己显示的内容.

    相关文章

      网友评论

          本文标题:自定义View - 17.draw()源码分析

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