起初,我创建了一个自定义视图,它通过覆盖该onDraw()
方法来绘制自己。由于我需要创建大量视图,这被证明是不切实际的。所以我创建了一个自定义 ViewGroup,它使用该onLayout()
方法绘制它的每个孩子。
我在 android 文档中读到子视图应该实现一个layout()
方法。但是我制作的子视图使用 onDraw 方法来绘制自己。我该如何处理?我应该摆脱这种onDraw()
方法吗?谁能给我一个关于该layout()
方法如何工作以及我应该如何将我onDraw()
的方法“转换”为方法的示例layout()
?
我当前的onDraw()
方法如下所示:
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
//Draw Border.
canvas.drawRect(mCellBounds, mBorderPaint);
//Draw Background.
canvas.drawRect(mBackgroundBounds, mBackGroundPaint);
//Draw Value if not 0.
if(Value != 0)
canvas.drawText(Integer.toString(Value), ValueX, ValueY, mNumberPaint);
//Draw Notes if Value == 0.
else
{
for(int i = 0 ; i < 9 ; i++)
if(NoteList[i])
canvas.drawText(Integer.toString(i), NoteX + ((i%3) * NoteMeasureX), NoteY + ((i/3) * NoteMeasureY), mNotePaint);
}
}