2

我正在尝试在画廊顶部绘制自定义 UI(在本例中为路径)。我扩展了基本的 Gallery 类并覆盖了 draw 方法,如下所示:

public class MyGallery extends Gallery {
...
@Override 
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawPath(mPath, mPaint);
}

我认为将我的路径图放在之后super.onDraw可以确保路径被绘制在画廊的顶部并且它是子视图,但是子视图被分层在我的路径之上。有谁知道如何正确绘制这个?(我知道我可以包含一个 RelativeLayout 并分层一个进一步的视图,以这种方式在画廊顶部绘制我的路径,但我宁愿将它全部放在一个类中)

4

1 回答 1

6

我在询问后直接发现了这个,所以决定无论如何发布,以防有​​人遇到同样的问题。要在画廊中绘制子视图,请覆盖dispatchDraw而不是onDraw

@Override
protected void dispatchDraw(Canvas canvas) {
    super.dispatchDraw(canvas);
    canvas.drawPath(mPath,mPaint);
}
于 2012-06-15T15:55:28.187 回答