2012-06-19 2 views
1

캘린더를 표시하는 GridView가 있습니다. 나는 복수의 일 (days)을 가로 지르는 뚱뚱한 선들 (그리드 셀 높이의 1/4 정도)을 그릴 필요가있다. 나는 주어진 주 동안 이들 중 두세 가지를해야 할 수도 있습니다.GridView를 통한 페인팅

일주일에 걸쳐 각 줄에는 텍스트가 있어야합니다.

선은 그리드 셀을 교차해야하기 때문에 그리드 뷰와 캔버스에 캔버스를 붙일 수는 있습니다. 그러나 나는 그렇게 할 수있는 방법을 찾을 수 없습니다. 선이 여러 격자 셀을 교차하므로 특정 셀에 선을 그려서 이전 셀과 일렬로 정렬하는 것이 유용하지 않은 것처럼 보입니다. 그리고 저는 이것을 동적으로해야하는데 레이아웃에서 설정할 수는 없습니다.

이 작업을 수행하는 방법에 대한 아이디어는 열려 있습니다. 누군가?

답변

1

당신의 GridView 내용의 상단에 추가 드로잉을 수행 할 경우

  • 재정 dispatchDraw(), 당신에 그릴 수있는 캔버스를 손에있다.
  • 정상적인 내용을 먼저 그리려면 super.dispatchDraw()를 호출하십시오.
  • 캔버스를 사용하여 필요한 추가 기능을 추가하십시오.

HTH

+0

좋아, 그래서 나는의 GridView를 서브 클래스해야 dispatchDraw() 오버라이드 (override)합니다. 레이아웃에서 어떻게 지정합니까? GridView 대신 클래스의 이름을 지정하면 이해할 수 있습니까? 아니면 그것을 버리고 수동으로보기를 팽창시켜야합니까? – CraigA

+0

사용자 지정 컨트롤에 대한 SDK 문서를 살펴보십시오. 특히 기사의 맨 아래에 XML 레이아웃에서 작성한 사용자 정의 뷰 클래스를 활용하는 방법이 나와 있습니다. http://developer.android.com/guide/topics/ui/custom-components.html#modifying – Devunwired

+0

. 매우 감사합니다! – CraigA