Upload
heejun-kim
View
171
Download
2
Embed Size (px)
Citation preview
1
JAVA, Android 스터디
2015.06.09김희준
2
참조 프로젝트 : SampleRelativeLayout다운로드 : easyspub.com
실행화면
①
③
② ④
⑤
⑥
0. 지난주 복습
3
참조 프로젝트 : SampleRelativeLayout다운로드 : easyspub.com
Activity_main.xml 에서 버튼 3 개 생성 ( 리니어 레이아웃 )
①
0. 지난주 복습
4
참조 프로젝트 : SampleRelativeLayout다운로드 : easyspub.com
Nomal.xml 소스새로운 텍스트뷰 1 개 생성
Layout_alignparentTop설정으로 텍스트뷰가 상단에 위치하게 됨
Layout_marginTop 설정으로 20dp 떨어진 상단에텍스트뷰 생성
④
0. 지난주 복습
5
참조 프로젝트 : SampleLayout다운로드 : easyspub.com
실행화면
①
②
③
0. 지난주 복습
6
참조 프로젝트 : SampleLayout다운로드 : easyspub.com
테이블 레이아웃에선TableRow 태그를 이용열을 추가
하나의 열에 여러가지뷰가 들어갈 수 있음
이름과 나이를 보여주는 텍스트 뷰를 생성
Table_layout.xml 소스2 개의 텍스트뷰를 추가하는 부분
①
②
0. 지난주 복습
7
참조 프로젝트 : SampleScrollView다운로드 : easyspub.com
실행화면
0. 지난주 복습
8
참조 프로젝트 : SampleLayout다운로드 : easyspub.com
HorizontalScrollView 는수평 스크롤을 위한 뷰그 안에 있는 Scrollview 는수직 스크롤을 위한 뷰
수평 스크롤 뷰 안에이미지 뷰가 생성 되이미지가 화면보다클 경우 스크롤이가능해짐
Activity_main.xml 소스스크롤바 생성 / 설정을 위한 부분
0. 지난주 복습
9
참조 프로젝트 : SampleFrameLayout다운로드 : easyspub.com0. 지난주 복습
10
참조 프로젝트 : SampleFrameLayout다운로드 : easyspub.com
프레임 레이아웃 내에 이미지 뷰를 2 개 생성실제로 보이는 것은 1 개의뷰이고 이는 visibility 를통해 설정 가능
0. 지난주 복습
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. 지난주 복습
12
참조 교재 : Do it! 안드로이드 앱 프로그래밍
3. 에디트텍스트 - 사용자의 입력을 받기에 용이 , 복 / 붙 등 기본기능 지원 - 포커스가 설정되면 키패드가 화면에 나타남 - hint 속성을 이용하면 안내글이 출력됨
4. 이미지뷰 - 이미지를 화면에 보여주기에 유용 - 주요 속성 : src( 이미지 설정 ), maxWidTh/Height( 최대크기설정 ) - tint( 반투명 색상 적용 ), scaleType( 확대 / 축소 비율 )
0. 지난주 복습
13
참조 교재 : Do it! 안드로이드 앱 프로그래밍
ㅁ 자바에서는 Graphics 라는 클래스가 존재 - 하위 클래스 : Canvas, Paint, Bitmap, Drawable 등 - Canvas : 뷰의 표면에 직접 그릴 수 있게 만들어주는 객체와 이를 위한 메소드 정의 - Paint : 그래픽 그리기를 위해 필요한 색상 등의 속성을 담음 - Bitmap : 픽셀로 구성된 이미지로 메모상에 그래픽을 그림 - Drawable : 사각형 , 이미지 등의 그래픽 요소가 객체로 정의
ㅁ 그래픽 그리기 순서 - 1 단계 : 새로운 클래스를 만들고 뷰를 상속 받기 - 2 단계 : 페인트 객체를 초기화하고 필요한 속성 설정 - 3 단계 : onDraw() 메소드 내에 사각형을 그리는 메소드 호출 - 4 단계 : onTouch() 메소드 내에 터치 이벤트를 처리하는 코드 작성 - 5 단계 : 새로만든 뷰를 메인 액티비티에 추가
1. 그래픽
14
참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽1 단계 : 새로운 클래스를 만들고 뷰를 상속 받기
CustomView 를 MainActivity 가 있는 폴더에 만듬새로운 CustomView 클래스에서 View 클래스를정의 , Context 객체 하나를 파라미터로 전달받는생성자로 정의
페인트 객체에는 그래픽을 그리기 위해 필요한속성을 가짐 , 선언된 페인트 객체의 속성 중색상을 빨간색으로 설정
2 단계 : 페인트 객체를 초기화하고 필요한 속성 설정
15
참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽3 단계 : onDraw() 메소드 내에 사각형을 그리는 메소드 호출
onDraw 메소드는 뷰가 화면에 디스플레이될 때 자동으로 호출되며 , 따라서 해당 메소드 안에 캔버스 객체에 있는 메소드중자신이 그리기 원하는 것을 골라서 그림
16
참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽4 단계 : onTouch() 메소드 내에 터치 이벤트를 처리하는 코드 작성
onTouch() 는 터치 이벤트를 처리하는 일반적인 방법을 제공하며 , 현재 보이는 코드는 터치한 횟수와 , 터치한 곳의 X,Y 좌표를 토스트 메시지로 보여주게 하는 부분
17
참조 교재 : Do it! 안드로이드 앱 프로그래밍1. 그래픽5 단계 : 새로만든 뷰를 메인 액티비티에 추가
MainActivity 의 코드 , 새로 만든 CustomView 클래스를 new 연산자를 사용해메인 액티비티에 추가
18
1. 그래픽 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com
실행화면
19
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com
실행화면
20
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com
첫번째 사각형을 그림채우기 색상은 빨간색으로 설정
ㅁ 사각형 그리기
21
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com
첫번째 사각형의 테두리 설정초록색으로 사각형의 테두리 그림
ㅁ 사각형 그리기
22
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com
두번째 사각형을 그림채우기 색상은 파란색으로 설정
ㅁ 사각형 그리기
23
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com
첫번째 사각형의 테두리 설정초록색으로 사각형의 테두리 그림DashPathEffect 로 점선 테두리 설정
ㅁ 사각형 그리기
24
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.comㅁ 원 그리기
첫번째 원 그리기Canvas 객체의 drawCircle 메소드를 이용해 원을 그립니다 .
두번째 원 그리기Canvas 객체의 drawCircle 메소드를 이용해 원을 그립니다 .setAntiAlias 속성값을 Ture 로 줄경우원이 부드럽게 그려집니다 .
25
2. 그래픽 그리기 참조 프로젝트 : SampleCustomView-Style다운로드 : easyspub.com
첫번재 텍스트 Stroke 스타일로 설정
두번재 텍스트 Fill 스타일로 설정ClipRect 는 그리기 가 일어나는 영역을 설정하는 메소드
26
3. 페인트 보드 만들기 참조 프로젝트 : PaintBoard다운로드 : easyspub.com
실행화면
버전 1 버전 2 버전 3
27
3. 페인트 보드 만들기ㅁ 버전 1
소스코드가 너무 길어 그리는 부분만 분석
X, Y 좌표를 구하는 변수 선언
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
28
3. 페인트 보드 만들기ㅁ 버전 1
소스코드가 너무 길어 그리는 부분만 분석
터치한 후 뗄 때 좌표 초기화
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
29
3. 페인트 보드 만들기ㅁ 버전 1
소스코드가 너무 길어 그리는 부분만 분석
터치할 때 눌린 좌표를 기준으로 선을 그림
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
30
3. 페인트 보드 만들기
터치 한 상태에서 움직일 경우계속해서 선을 그림
ㅁ 버전 1
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
31
3. 페인트 보드 만들기
Invlidate 메소드로 화면을 다시 그림
ㅁ 버전 1
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
PaintBoard.java 코드
32
3. 페인트 보드 만들기ㅁ 버전 2( 색상 )
새로 정의한 객체에 리스너 설정
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
GoodPaintActivity.java 코드
33
3. 페인트 보드 만들기ㅁ 버전 2( 색상 )
ColorPaletteDialog 대화상자 띄우기
GoodPaintActivity.java 코드
참조 프로젝트 : PaintBoard다운로드 : easyspub.com
34
3. 페인트 보드 만들기 참조 프로젝트 : PaintBoard다운로드 : easyspub.com
ㅁ 버전 2( 색상 )
ColorPaletteDialog 클래스 코드
레이아웃의 grid 객체 참조
35
3. 페인트 보드 만들기 참조 프로젝트 : PaintBoard다운로드 : easyspub.com
ㅁ 버전 2( 색상 )
ColorPaletteDialog 클래스 코드
객체에 대한 속성 설정
36
3. 페인트 보드 만들기 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com
ㅁ 버전 2( 색상 )
21 개의 색상 지정
ColordataAdapter 의 코드
7X3 의 그리드 레이아웃
37
3. 페인트 보드 만들기 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com
ㅁ 버전 2( 색상 )
색상값을 정수형 배열로 저장
38
3. 페인트 보드 만들기 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com
ㅁ 버전 2( 색상 )
getView 메소드 안에서 각 아이템을버튼으로 만든 후 저장
39
4. 과제 참조 프로젝트 : SampleCustomView다운로드 : easyspub.com
1. 색상선택 부분 복습 2. 펜 굵기 / 지우개 부분 스터디 후 발표 ( 다음시간 )
3. 버전 2 와 버전 3 의 다른점 찾기 + 버전 3 에서 추가된 내용 발표
40
Q & A
41
Thank you!!