41
JAVA, Android 스스스 2015.06.09 스스스 1

Java, android 스터티8

Embed Size (px)

Citation preview

Page 1: Java, android 스터티8

1

JAVA, Android 스터디

2015.06.09김희준

Page 2: Java, android 스터티8

2

참조 프로젝트 : SampleRelativeLayout다운로드 : easyspub.com

실행화면

② ④

0. 지난주 복습

Page 3: Java, android 스터티8

3

참조 프로젝트 : SampleRelativeLayout다운로드 : easyspub.com

Activity_main.xml 에서 버튼 3 개 생성 ( 리니어 레이아웃 )

0. 지난주 복습

Page 4: Java, android 스터티8

4

참조 프로젝트 : SampleRelativeLayout다운로드 : easyspub.com

Nomal.xml 소스새로운 텍스트뷰 1 개 생성

Layout_alignparentTop설정으로 텍스트뷰가 상단에 위치하게 됨

Layout_marginTop 설정으로 20dp 떨어진 상단에텍스트뷰 생성

0. 지난주 복습

Page 5: Java, android 스터티8

5

참조 프로젝트 : SampleLayout다운로드 : easyspub.com

실행화면

0. 지난주 복습

Page 6: Java, android 스터티8

6

참조 프로젝트 : SampleLayout다운로드 : easyspub.com

테이블 레이아웃에선TableRow 태그를 이용열을 추가

하나의 열에 여러가지뷰가 들어갈 수 있음

이름과 나이를 보여주는 텍스트 뷰를 생성

Table_layout.xml 소스2 개의 텍스트뷰를 추가하는 부분

0. 지난주 복습

Page 7: Java, android 스터티8

7

참조 프로젝트 : SampleScrollView다운로드 : easyspub.com

실행화면

0. 지난주 복습

Page 8: Java, android 스터티8

8

참조 프로젝트 : SampleLayout다운로드 : easyspub.com

HorizontalScrollView 는수평 스크롤을 위한 뷰그 안에 있는 Scrollview 는수직 스크롤을 위한 뷰

수평 스크롤 뷰 안에이미지 뷰가 생성 되이미지가 화면보다클 경우 스크롤이가능해짐

Activity_main.xml 소스스크롤바 생성 / 설정을 위한 부분

0. 지난주 복습

Page 9: Java, android 스터티8

9

참조 프로젝트 : SampleFrameLayout다운로드 : easyspub.com0. 지난주 복습

Page 10: Java, android 스터티8

10

참조 프로젝트 : SampleFrameLayout다운로드 : easyspub.com

프레임 레이아웃 내에 이미지 뷰를 2 개 생성실제로 보이는 것은 1 개의뷰이고 이는 visibility 를통해 설정 가능

0. 지난주 복습

Page 11: Java, android 스터티8

11

참조 교재 : Do it! 안드로이드 앱 프로그래밍

1. 텍스트 뷰 (TextView)

- 화면을 구성할 때 가장 많이 사용 - 주요 속성 : text, textColor, textSize, textSyle, typeface( 기본문자 표시 ), singleLine( 한줄 표시 )

2. 버튼 (Button)

- 위젯에서 발생하는 이벤트 처리에 유용 - 체크박스 , 라디오 버튼도 버튼의 속성을 가짐 - ImageButton 태그로 버튼에 이미지 추가 가능 - 관련 메소드 : public boolean isChecked() public void setChecked(boolean checked) public void toggle() 등

0. 지난주 복습

Page 12: Java, android 스터티8

12

참조 교재 : Do it! 안드로이드 앱 프로그래밍

3. 에디트텍스트 - 사용자의 입력을 받기에 용이 , 복 / 붙 등 기본기능 지원 - 포커스가 설정되면 키패드가 화면에 나타남 - hint 속성을 이용하면 안내글이 출력됨

4. 이미지뷰 - 이미지를 화면에 보여주기에 유용 - 주요 속성 : src( 이미지 설정 ), maxWidTh/Height( 최대크기설정 ) - tint( 반투명 색상 적용 ), scaleType( 확대 / 축소 비율 )

0. 지난주 복습

Page 13: Java, android 스터티8

13

참조 교재 : Do it! 안드로이드 앱 프로그래밍

ㅁ 자바에서는 Graphics 라는 클래스가 존재 - 하위 클래스 : Canvas, Paint, Bitmap, Drawable 등 - Canvas : 뷰의 표면에 직접 그릴 수 있게 만들어주는 객체와 이를 위한 메소드 정의 - Paint : 그래픽 그리기를 위해 필요한 색상 등의 속성을 담음 - Bitmap : 픽셀로 구성된 이미지로 메모상에 그래픽을 그림 - Drawable : 사각형 , 이미지 등의 그래픽 요소가 객체로 정의

ㅁ 그래픽 그리기 순서 - 1 단계 : 새로운 클래스를 만들고 뷰를 상속 받기 - 2 단계 : 페인트 객체를 초기화하고 필요한 속성 설정 - 3 단계 : onDraw() 메소드 내에 사각형을 그리는 메소드 호출 - 4 단계 : onTouch() 메소드 내에 터치 이벤트를 처리하는 코드 작성 - 5 단계 : 새로만든 뷰를 메인 액티비티에 추가

1. 그래픽

Page 14: Java, android 스터티8

14

참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽1 단계 : 새로운 클래스를 만들고 뷰를 상속 받기

CustomView 를 MainActivity 가 있는 폴더에 만듬새로운 CustomView 클래스에서 View 클래스를정의 , Context 객체 하나를 파라미터로 전달받는생성자로 정의

페인트 객체에는 그래픽을 그리기 위해 필요한속성을 가짐 , 선언된 페인트 객체의 속성 중색상을 빨간색으로 설정

2 단계 : 페인트 객체를 초기화하고 필요한 속성 설정

Page 15: Java, android 스터티8

15

참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽3 단계 : onDraw() 메소드 내에 사각형을 그리는 메소드 호출

onDraw 메소드는 뷰가 화면에 디스플레이될 때 자동으로 호출되며 , 따라서 해당 메소드 안에 캔버스 객체에 있는 메소드중자신이 그리기 원하는 것을 골라서 그림

Page 16: Java, android 스터티8

16

참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽4 단계 : onTouch() 메소드 내에 터치 이벤트를 처리하는 코드 작성

onTouch() 는 터치 이벤트를 처리하는 일반적인 방법을 제공하며 , 현재 보이는 코드는 터치한 횟수와 , 터치한 곳의 X,Y 좌표를 토스트 메시지로 보여주게 하는 부분

Page 17: Java, android 스터티8

17

참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽5 단계 : 새로만든 뷰를 메인 액티비티에 추가

MainActivity 의 코드 , 새로 만든 CustomView 클래스를 new 연산자를 사용해메인 액티비티에 추가

Page 18: Java, android 스터티8

18

1. 그래픽 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com

실행화면

Page 19: Java, android 스터티8

19

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com

실행화면

Page 20: Java, android 스터티8

20

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com

첫번째 사각형을 그림채우기 색상은 빨간색으로 설정

ㅁ 사각형 그리기

Page 21: Java, android 스터티8

21

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com

첫번째 사각형의 테두리 설정초록색으로 사각형의 테두리 그림

ㅁ 사각형 그리기

Page 22: Java, android 스터티8

22

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com

두번째 사각형을 그림채우기 색상은 파란색으로 설정

ㅁ 사각형 그리기

Page 23: Java, android 스터티8

23

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com

첫번째 사각형의 테두리 설정초록색으로 사각형의 테두리 그림DashPathEffect 로 점선 테두리 설정

ㅁ 사각형 그리기

Page 24: Java, android 스터티8

24

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.comㅁ 원 그리기

첫번째 원 그리기Canvas 객체의 drawCircle 메소드를 이용해 원을 그립니다 .

두번째 원 그리기Canvas 객체의 drawCircle 메소드를 이용해 원을 그립니다 .setAntiAlias 속성값을 Ture 로 줄경우원이 부드럽게 그려집니다 .

Page 25: Java, android 스터티8

25

2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com

첫번재 텍스트 Stroke 스타일로 설정

두번재 텍스트 Fill 스타일로 설정ClipRect 는 그리기 가 일어나는 영역을 설정하는 메소드

Page 26: Java, android 스터티8

26

3. 페인트 보드 만들기 참조 프로젝트 : PaintBoard다운로드 : easyspub.com

실행화면

버전 1 버전 2 버전 3

Page 27: Java, android 스터티8

27

3. 페인트 보드 만들기ㅁ 버전 1

소스코드가 너무 길어 그리는 부분만 분석

X, Y 좌표를 구하는 변수 선언

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

Page 28: Java, android 스터티8

28

3. 페인트 보드 만들기ㅁ 버전 1

소스코드가 너무 길어 그리는 부분만 분석

터치한 후 뗄 때 좌표 초기화

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

Page 29: Java, android 스터티8

29

3. 페인트 보드 만들기ㅁ 버전 1

소스코드가 너무 길어 그리는 부분만 분석

터치할 때 눌린 좌표를 기준으로 선을 그림

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

Page 30: Java, android 스터티8

30

3. 페인트 보드 만들기

터치 한 상태에서 움직일 경우계속해서 선을 그림

ㅁ 버전 1

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

Page 31: Java, android 스터티8

31

3. 페인트 보드 만들기

Invlidate 메소드로 화면을 다시 그림

ㅁ 버전 1

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

PaintBoard.java 코드

Page 32: Java, android 스터티8

32

3. 페인트 보드 만들기ㅁ 버전 2( 색상 )

새로 정의한 객체에 리스너 설정

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

GoodPaintActivity.java 코드

Page 33: Java, android 스터티8

33

3. 페인트 보드 만들기ㅁ 버전 2( 색상 )

ColorPaletteDialog 대화상자 띄우기

GoodPaintActivity.java 코드

참조 프로젝트 : PaintBoard다운로드 : easyspub.com

Page 34: Java, android 스터티8

34

3. 페인트 보드 만들기 참조 프로젝트 : PaintBoard다운로드 : easyspub.com

ㅁ 버전 2( 색상 )

ColorPaletteDialog 클래스 코드

레이아웃의 grid 객체 참조

Page 35: Java, android 스터티8

35

3. 페인트 보드 만들기 참조 프로젝트 : PaintBoard다운로드 : easyspub.com

ㅁ 버전 2( 색상 )

ColorPaletteDialog 클래스 코드

객체에 대한 속성 설정

Page 36: Java, android 스터티8

36

3. 페인트 보드 만들기 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com

ㅁ 버전 2( 색상 )

21 개의 색상 지정

ColordataAdapter 의 코드

7X3 의 그리드 레이아웃

Page 37: Java, android 스터티8

37

3. 페인트 보드 만들기 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com

ㅁ 버전 2( 색상 )

색상값을 정수형 배열로 저장

Page 38: Java, android 스터티8

38

3. 페인트 보드 만들기 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com

ㅁ 버전 2( 색상 )

getView 메소드 안에서 각 아이템을버튼으로 만든 후 저장

Page 39: Java, android 스터티8

39

4. 과제 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com

1. 색상선택 부분 복습 2. 펜 굵기 / 지우개 부분 스터디 후 발표 ( 다음시간 )

3. 버전 2 와 버전 3 의 다른점 찾기 + 버전 3 에서 추가된 내용 발표

Page 40: Java, android 스터티8

40

Q & A

Page 41: Java, android 스터티8

41

Thank you!!