起初,我創建了一個自定義視圖,通過覆蓋onDraw()
方法來吸引自己。由於我需要創建大量的觀點,這變得不切實際。所以我創建了一個自定義ViewGroup,它使用onLayout()
方法繪製它的每個子對象。自定義ViewGroup中的自定義視圖應該使用onDraw()還是layout()?
我讀過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);
}
}
謝謝,我會考慮這個。但現在,我想了解自定義視圖組是如何工作的,所以這個問題對我很重要。 –