처음에는 onDraw()
메서드를 재정 의하여 그려진 사용자 지정보기를 만들었습니다. 이것은 필자가 만들어야 할 많은 양의 관점 때문에 비실용적 인 것으로 판명되었습니다. 그래서 저는 각각 onLayout()
메쏘드를 가진 그것의 childs들을 드로잉하는 커스텀 ViewGroup을 만들었습니다.사용자 정의 ViewGroup 내의 사용자 정의보기는 onDraw() 또는 layout()을 사용해야합니까?
나는 자식보기가 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);
}
}
감사합니다. 이것을 고려해 보겠습니다. 그러나 지금은 맞춤보기 그룹이 어떻게 작동하는지 이해하여이 질문이 중요하다는 것을 알고 싶습니다. –