본문

[2017.09.24] 16. Android 그림판(DrawPad) 프로젝트 [점 찍기, 점 연결]

그림판 프로젝트에 진행하기 앞서 View의 onDraw 메소드를 오버라이딩해 Custom View를 그림판처럼 사용할 수 있다.

일련의 과정은 아래 그림과 같다. 

Step1

1) View의 onDraw 메소드를 오버라이딩해 CustomView를 생성

2) CustomView 터치에 따른 로직을 처리하기 위해 onTouchEvent 메소드 오버라이딩


Step2

1) 생성한 CustomView를 MainActivity에 등록

2) CustomView를 조작하기 위한 다양한 리스너 설정


실습

Step1 View를 상속받아 CustomView 생성

 - 점 찍기 CustomView.java


- 점 연결 CustomView.java


Step2 CustomView를 MainActivity에 등록

MainActivity.java


문제점 및 해결

분명히 생각한대로 구현했다고 생각했는데 결과가 나오지 않았다. 

(출처 - https://developer.android.com/reference/android/view/View.html#onDraw(android.graphics.Canvas))

찾아보니, View를 강제로 갱신하기 위해 invalidate 메소드를 호출한다고 한다. invalidate 메소드는 View의 onDraw 메소드를 호출해 화면을 갱신한다.

invalidate 메소드를 터치 메소드에서 호출하므로 문제 해결!


스크린 샷

점 찍기

점 연결




#안드로이드 그림판 만들기 #안드로이드 Paint #안드로이드 Path #Custom view #invalidate

공유

댓글