美文网首页
自定义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