본문 바로가기

안드로이드

커스텀 뷰(Custom View) 만들기

커스텀 뷰(Custom View) 만들기

왜 필요할까? 기획자.디자이너 의도에 맞춰야되기

때문이다

1.기본적인 원리

(1) 기존에 존재하는 View클래스를 상속한다
(2) onDraw,onMeasure,onKeyDown와 같이 on으로 시작하는 수퍼클래스 메소드를 오버라이드한다
(3) 새로만든커스텀뷰를 사용한다.

2. onDraw와 onMeasure

onDraw에서는 개발자가 원하는대로 구현할수있는 canvas를 제공한다
onMeasure에서는 뷰의 사이즈를 측정하고 실제 측정된 사이즈가 수행되는곳이다
onLayout 에서는 뷰의위치가 결정될때 호출된다

구현한 커스텀뷰

1. 글자별로 잘릴것같으면 다음줄로 내려주는 텍스트뷰
-> 공백을 ₩u00A0로 바꿔주면 단어wrap이 생기지 않음(no break space기호) 단어잘림방지공백이있으면 모든 문자열을 다음줄로 옮긴다

2. fulldrawerlayout : 드로워레이아웃이 전체화면을 가리지 않으나 전체화면을 가리도록 커스텀함
onMeasure에서 뷰에서 자식뷰를 다 가져와 전체화면 사이즈로 변경, 재산정하여 계산하도록 요구한다

3. wrappingslidingdrawer : 기본위젯인 slidingdrawer가 모든 방향이 아닌 아래에서 위로와 오른쪽에서 왼쪽만 지원가능하여 모든 방향이 가능하도록 수정하였다. 또 ui적으로 다른부분을 커스텀하여 개발