이 글은 android.View 클래스 학습을 위해
아래 레파지토리 Google Samples / mlKit을 활용하였습니다.
mlkit/android/material-showcase at master · googlesamples/mlkit · GitHub
googlesamples/mlkit
A collection of sample apps to demonstrate how to use Google's ML Kit APIs on Android and iOS - googlesamples/mlkit
github.com
material-showcase
출처: https://ckstmsla.tistory.com/entry/Android-View-GraphicOverlay-01-클래스-다이어그램 [찬스님의 안드로이드, 웹 기록장]
목표 :
ML Kit 프로젝트의 GraphicOverlay ( 이하 관련 클래스 포함 ) 를 분석하여
사용자 정의 뷰를 그리는 방법과 구현 흐름을 익힌다.
java.lang.Object
android.view.View
무엇을 준비해야 할까?
처음에 android.view.View 클래스를 구현하는 클래스를 정의한다.
이 View 클래스는 Button이나 EditText와 같은 위젯의 뷰 클래스 최상위이다.
( 물론 Object 클래스가 더 상위에 위치 하지만 뷰 관련 클래스 한정 )
View 클래스의
여러 카테고리 요소 중 " Drawing " 에 해당하는 onDraw( android.graphics.Canvas ) 메서드를 오버라이딩한다.
뷰 카테고리
어디에 그려지는걸까 ?
onDraw( Cavans ) 메서드는 뷰의 위치와 크기가 정의된 뒤, 뷰가 콘텐츠를 렌더링 할 때 호출된다.
즉, 그려져야 할 때 호출된다.
이 때, " 그려지는 곳 "을 알려준다.
그게 바로 Canvas 인스턴스이다.
무엇을 그릴지 ?
Canvas 인스턴스에 무엇을 그릴지 알려주면 된다.
Canvas를 통해 그릴 수 요소는 아래
Text, Verticle, RoundRect, Rect, Picture, Circle, Bitmap 등 다양하다.
여기서 android.graphics.Paint 클래스를 이용하여
위 요소들을 어떻게 그릴지에 대한 정보 ( 속성 ) Color, Style, Anti Aliasing, Alpha 등 을
설정할 수도 있다.
Paint 클래스 알아보기
'Android > 사용자 인터페이스 ( View, ViewGroup )' 카테고리의 다른 글
사용자 인터페이스 - Constraint Layout [ 제약조건 개요, 추가] (0) | 2021.05.26 |
---|---|
사용자 인터페이스 - 레이아웃[ View & ViewGroup 속성, 위치, 크기, 여백 및 패딩 ] (0) | 2021.05.07 |
사용자 인터페이스 - 레이아웃[ View, ViewGroup 구조, XML ] (0) | 2021.05.07 |
[Android View] GraphicOverlay 01. 클래스 다이어그램 (0) | 2021.04.16 |