如何在Custom ViewGroup中的父视图后面绘制内容

时间:2014-05-23 06:47:08

标签: android android-custom-view ondraw viewgroup

我正在使用此ArcMenu https://github.com/daCapricorn/ArcMenu

请检查github页面上的ArcMenu的代码和图像

此自定义视图以这种方式排列 - > ArcMenu [查看]有孩子 - > ArcLayout [ViewGroup]有子项 - > ImageViews(用于保存菜单的图标)

我正在尝试在Arclayout后面绘制彩色弧线。我在onDraw

中这样做

protected void onDraw(Canvas canvas){         // TODO自动生成的方法存根

    if(isExpanded()){
        Log.d("ArcLayout","onDraw(Canvas)");
            Paint paint = new Paint();
            paint.setAntiAlias(true);
            paint.setColor(colorOne);
            paint.setAlpha(125);

            canvas.drawArc(rect, startAngle, sweepAngle, true, paint);
            //Dimensions of rect are set in OnMeasure 
    }
    super.onDraw(canvas);
}

现在的问题是为所有子项调用OnDraw,而绘制的逻辑对于parentView和子视图是相同的。我希望彩色圆弧绘制在父视图后面而不是子视图(Imageviews)。

Rect尺寸为top = 0,left = 0,right = getMeasuredWidth(),bottom = getMeasuredHeight()。

当调用canvas.onDraw时,rect的左上角变为相对于child,即孩子的0,0而不是父。结果是孩子后面的彩色弧而不是父母。

我应该如何确保彩色弧线仅在父视图后面绘制?

0 个答案:

没有答案