본문 바로가기

2학년/안드로이드

0603 android

Custom Widget 자신이 새로 만들고자 하는 주요 동작에 따라 부모 클래스를 정한다. 

 

 

>> 화면을 터치하면 주어진 색으로 그림을 그리는 Widget class 를 생성한다. 

레이아웃에 추가해서 사용해 본다. 

 

레이아웃에 그 위젯을 올릴 수 있어야 편하다. new 가 아니고.. 

그냥 new 해버리면 더 복잡하니까 xml 로 가져오는 것이 제일 편한 것..! 

그 것을 위해 지금 열심히 작업을 할 예정이다. 

 

색상 지정할 수 있는 기능.. 

 

Canvas & Paint  : java에서 drawing 하는 기술 .. 

Canvas: 그림판, 그림을 그릴 대상, width, height  

Paint: 붓이라고 생각! 색, 선, 굵기 등의 내용을 가지고 있다. 

 

onDraw() : 

위젯을 새로 그려야 할 시점에 호출된다. 

파라미터로 Canvas가 전달되며 여기에 그림을 그리면 화면에 출력된다. 

 

1. 

2. 가로 세로 전환했을 떄 자동으로 전환된다. touch 이벤트가 발생할 때 마다 새로 그려줘야 한다. 

> 절대 직접 onDraw를 부르면 안됨!

 

invalidate() : 

onDraw()를 부르기 위한 method. 개발자가 정한 시점에 화면을 갱신해야 할 경우, invalidate()를 호출한다. 

필요한 정보들이 준비된 다음, onDraw() 가 호출된다. 

 

1. canvas

2. paint 

3. invalidate()

 

// java로 그리는 플랫폼에서 이 개념을 쓴다. 잘 알아두길.. 

 

 

전체 화면 사이즈의 DrawingView

라디오 버튼을 클릭하면 색깔을 바꿀 수 있도록... 

 

저장 기능 까지 짜 보자 

ImageView가 비트맵으로 현재 이미지를 캡쳐해서 저장하도록 하면 됨. 

파일경로를 줘서 저장할 수 있도록 하면 된다! 

https://material.io/

 

Homepage

Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.

material.io

drawable 폴더에서 new Vector asset. 해서 이미지를 가져온다. 

 

SVG 파일 땡겨오기 

drawable> new Vector asset > local directory(?) 

 

 

SDK 버전이 낮다면?

drawable 폴더 안의 xml 파일을 3개 만들어서 

fill 안에 있는 그림파일을 3개 만들어서 blue 에는 blue, red에는 red, black에는 black을 넣어주면 된다. 

 

 

firebase , ... 

 

cordova는 아직.. 

'2학년 > 안드로이드' 카테고리의 다른 글

0610_android  (0) 2019.06.10
Firebase Cloud Messaging  (0) 2019.05.30
0527 android  (0) 2019.05.27
0523 android  (0) 2019.05.23
anroid RecyclerView 참고  (0) 2019.05.16