【发布时间】:2012-12-19 21:26:02
【问题描述】:
首先,我创建了一个自定义视图,它通过覆盖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);
}
}
【问题讨论】:
标签: android android-view android-custom-view viewgroup