SlideShare a Scribd company logo
1 of 43
JAVA, Android 스터디
2015.06.11
김희준
1
2
참조 교재 : Do it! 안드로이드 앱 프로그래밍
ㅁ 자바에서는 Graphics라는 클래스가 존재
- 하위 클래스 : Canvas, Paint, Bitmap, Drawable 등
- Canvas : 뷰의 표면에 직접 그릴 수 있게 만들어주는
객체와 이를 위한 메소드 정의
- Paint : 그래픽 그리기를 위해 필요한 색상 등의 속성을 담음
- Bitmap : 픽셀로 구성된 이미지로 메모상에 그래픽을 그림
- Drawable : 사각형, 이미지 등의 그래픽 요소가 객체로 정의
ㅁ 그래픽 그리기 순서
- 1단계 : 새로운 클래스를 만들고 뷰를 상속 받기
- 2단계 : 페인트 객체를 초기화하고 필요한 속성 설정
- 3단계 : onDraw() 메소드 내에 사각형을 그리는 메소드 호출
- 4단계 : onTouch() 메소드 내에 터치 이벤트를 처리하는 코드 작성
- 5단계 : 새로만든 뷰를 메인 액티비티에 추가
0. 지난주 복습
3
참조 프로젝트 : SampleCustomViewStyle
다운로드 : easyspub.com
실행화면
0. 지난주 복습
4
참조 프로젝트 : SampleCustomViewStyle
다운로드 : easyspub.com
첫번째 사각형을 그림
채우기 색상은 빨간색으로 설정
ㅁ 사각형 그리기
0. 지난주 복습
5
참조 프로젝트 : SampleCustomViewStyle
다운로드 : easyspub.com
첫번째 사각형의 테두리 설정
초록색으로 사각형의 테두리 그림
ㅁ 사각형 그리기
0. 지난주 복습
6
참조 프로젝트 : SampleCustomViewStyle
다운로드 : easyspub.com
ㅁ 원 그리기
첫번째 원 그리기
Canvas객체의 drawCircle메소드를
이용해 원을 그립니다.
두번째 원 그리기
Canvas객체의 drawCircle메소드를
이용해 원을 그립니다.
setAntiAlias속성값을 Ture로 줄경우
원이 부드럽게 그려집니다.
0. 지난주 복습
7
참조 프로젝트 : SampleCustomViewStyle
다운로드 : easyspub.com
첫번재 텍스트
Stroke스타일로 설정
두번재 텍스트
Fill스타일로 설정
ClipRect는 그리기 가 일어나는 영역
을 설정하는 메소드
0. 지난주 복습
8
참조 프로젝트 : PaintBoard
다운로드 : easyspub.com
실행화면
버전1 버전2 버전3
0. 지난주 복습
9
ㅁ 버전 1
소스코드가 너무 길어 그리는 부분만 분석
터치한 후 뗄 때 좌표 초기화
참조 프로젝트 : PaintBoard
다운로드 : easyspub.com0. 지난주 복습
10
ㅁ 버전 1
소스코드가 너무 길어 그리는 부분만 분석
터치할 때 눌린 좌표를 기준으로
선을 그림
참조 프로젝트 : PaintBoard
다운로드 : easyspub.com0. 지난주 복습
11
터치 한 상태에서 움직일 경우
계속해서 선을 그림
ㅁ 버전 1
참조 프로젝트 : PaintBoard
다운로드 : easyspub.com0. 지난주 복습
12
Invlidate메소드로 화면을 다시 그림
ㅁ 버전 1
참조 프로젝트 : PaintBoard
다운로드 : easyspub.com
PaintBoard.java 코드
0. 지난주 복습
13
참조 프로젝트 : SampleCustomView
다운로드 : easyspub.com
1. 색상선택 부분
2. 펜 굵기/지우개 부분
3. 버전2와 버전 3의 다른점 찾기 + 버전3에서 추가된 내용 발표
0.5 지난주 복습(발표)
14
1. 스레드
ㅁ 스레드(Thread)의 필요성
- 메인 액티비티는 하나의 프로세스로 처리
* 대기시간이 길어질 시 많은 시간이 필요
- 멀티스레디 방식으로 해결 가능, 메모리 리소스 공유
- 리소스를 공유하기 때문에 데드락(Deadlock)발생 가능
- 런타임 예외라서 찾기가 힘듬
- 안드로이드에선 자바의 표준 Thread지원
참조 교재 : Do it! 안드로이드 앱 프로그래밍
15
1. 스레드
실행화면
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com
16
1. 스레드
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com
버튼 터치시 스레드에서 받은
값을 출력 함
MainActivity의 소스
17
1. 스레드
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com
MainActivity의 소스
화면이 보이고 있을때
스레드를 실행
18
1. 스레드
참조 프로젝트 : SampleJavaThread
다운로드 : easyspub.com
MainActivity의 소스
화면이 꺼져 있을때
스레드를 중지
19
2. 스레드 핸들러
ㅁ 프로세스가 생성되면
메인스레드는 메시지 큐를
실행, 메시지 큐를 이용해
메인 스레드가 처리할
메시지를 전달 하는 것이
핸들러 클래스
스레드와 스레드 핸들러 플로우 차트
참조 교재 : Do it! 안드로이드 앱 프로그래밍
20
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
실행화면
21
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
스레드 핸들러 변수 선언과
새로운 핸들러 객체 생성
22
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
프로그래스 바(가로로 긴 막대) 0으로 초기화
23
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
액티비티 시작 시 스레드 생성 후 실행
24
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
1초마다 핸들러로 메시지 전송
25
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
스레드에서 작업 상태나 결과를 핸들러의
sendMessage()로 전송
26
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
MainActivity의 소스
새로운 Handler클래스 정의,
프로그래스 바를 5씩 증가시킴
27
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
handleMessage()메소드 내에서
전달된 정보를 이용해 UI 업데이트
MainActivity의 소스
28
2. 스레드 핸들러
참조 프로젝트 : SampleThread
다운로드 : easyspub.com
Activity_main.xml의 소스
진행상태를 표기하기 위한
프로그래스 바를 정의
29
3. 스레드로 메시지 전송
MainActivity의 소스
ㅁ 앞에 그림은 서브스레드와
메시지 큐와의 메시지 전달,
하지만 서브스레드가 메인스
레드에게 메시지를 전달해야
되는 경우도 생기며, 이를 순
차적으로 처리하기 위해 메시
지 큐가 사용됨, 루퍼가 계속
돌며 메시지 큐에 있는 명령
들을 한 개 씩 처리
참조 교재 : Do it! 안드로이드 앱 프로그래밍
30
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
실행화면
3. 스레드로 메시지 전송
31
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
새로운 스레드 생성, 스레드를
생성하고 스레드를 위한 핸들러
를 만든다.
MainActivity의 소스
3. 스레드로 메시지 전송
32
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
새로만든 스레드에서
루퍼(Lopper)를 실행
MainActivity의 소스
3. 스레드로 메시지 전송
33
2. 스레드 핸들러
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
새로만든 스레드에서
루퍼(Lopper)를 실행
MainActivity의 소스
34
2. 스레드 핸들러
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
텍스트 뷰와 텍스를 수정할 수 있는
에디트 텍스트를 위한 레퍼런스 변수 선언
35
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
메인스레드를 위한 핸들러
3. 스레드로 메시지 전송
36
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
서브스레드를 위한 핸들러
3. 스레드로 메시지 전송
37
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
텍스트 뷰와 텍스를 수정할 수 있는
에디트 텍스트를 위한 객체 생성
3. 스레드로 메시지 전송
38
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
생성된 객체를 레퍼런스 변수 참조(이름)를
이용해 activity_main.xml에 이미 만들어진
텍스트 뷰와 에디트 텍스트의 속성을
알 수 있음
3. 스레드로 메시지 전송
39
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
버튼이 눌릴 경우 스레드로 메시지를 보내고
해당 스레드를 실행
3. 스레드로 메시지 전송
40
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
새로 만든 스레드 핸들러,
메인 스레드의 핸들러로 메시시 전송
3. 스레드로 메시지 전송
41
참조 프로젝트 : SampleLopper
다운로드 : easyspub.com
MainActivity의 소스
새로 만든 스레드 핸들러로 받은
메시지를 메인 스레드 핸들러에서
에디트텍스트에 메시로 표시
3. 스레드로 메시지 전송
Q & A
42
Thank you!!
43

More Related Content

Similar to Java, android 스터티9

Java, android 스터티8
Java, android 스터티8Java, android 스터티8
Java, android 스터티8Heejun Kim
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Dong Chan Shin
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js 양재동 코드랩
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스Dexter Jung
 
Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Youngbin Han
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)Jinwook On
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1jangpd007
 
3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약Tae wook kang
 
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇Amazon Web Services Korea
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정leejungwang
 
AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영
AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영
AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영창훈 정
 
[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정
[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정
[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정SangHyeok Hong
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 uEngine Solutions
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4성연 김
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 

Similar to Java, android 스터티9 (20)

Java, android 스터티8
Java, android 스터티8Java, android 스터티8
Java, android 스터티8
 
Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1Project anarchy로 3 d 게임 만들기 part_1
Project anarchy로 3 d 게임 만들기 part_1
 
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js [W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
[W3C HTML5 2017] 예제를 통해 쉽게 살펴보는 Vue.js
 
Codex project
Codex projectCodex project
Codex project
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
 
Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기
 
OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)OpenJigWare(V02.00.04)
OpenJigWare(V02.00.04)
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
안드로이드스터디 1
안드로이드스터디 1안드로이드스터디 1
안드로이드스터디 1
 
3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약
 
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
AWS DevDay 실습 가이드 - Rekognition 기반 Twitter봇
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영
AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영
AWSKRUG 정기 세미나 (2016년 9월) - Lambda + S3 썸네일 생성 및 운영
 
[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정
[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정
[NDC 2018] 테라 콘솔 포팅기 - 현세대 콘솔 이식을 위한 렌더링 최적화 여정
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 

More from Heejun Kim

Java, android 스터티7
Java, android 스터티7Java, android 스터티7
Java, android 스터티7Heejun Kim
 
Java, android 스터티6
Java, android 스터티6Java, android 스터티6
Java, android 스터티6Heejun Kim
 
Java, android 스터티5
Java, android 스터티5Java, android 스터티5
Java, android 스터티5Heejun Kim
 
SSM 참고자료
SSM 참고자료SSM 참고자료
SSM 참고자료Heejun Kim
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4Heejun Kim
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4Heejun Kim
 
Java, android 스터티3
Java, android 스터티3Java, android 스터티3
Java, android 스터티3Heejun Kim
 

More from Heejun Kim (7)

Java, android 스터티7
Java, android 스터티7Java, android 스터티7
Java, android 스터티7
 
Java, android 스터티6
Java, android 스터티6Java, android 스터티6
Java, android 스터티6
 
Java, android 스터티5
Java, android 스터티5Java, android 스터티5
Java, android 스터티5
 
SSM 참고자료
SSM 참고자료SSM 참고자료
SSM 참고자료
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4
 
Java, android 스터티4
Java, android 스터티4Java, android 스터티4
Java, android 스터티4
 
Java, android 스터티3
Java, android 스터티3Java, android 스터티3
Java, android 스터티3
 

Recently uploaded

친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료Seongwon Kim
 
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다ultrasuperrok
 
TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)yonseilibrary
 
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.ultrasuperrok
 
바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111a01091282057
 
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.ultrasuperrok
 

Recently uploaded (6)

친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료친환경, 그린, 탄소저감  미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
친환경, 그린, 탄소저감 미래 교육 공간 디자인의 이해와 사례들에 대한 강의 자료
 
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
코딩테스트 합격자 되기 C++ 03장(시간 복잡도)를 설명한 ppt입니다
 
TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)TDM(Text Data Mining) Studio manual(2024)
TDM(Text Data Mining) Studio manual(2024)
 
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
이번에 새로 나온 코딩 테스트 합격자 되기 C++편 책을 소개하는 PPT 입니다.
 
바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111바리스타이론기초-1 수정 후 111111111111111111111111
바리스타이론기초-1 수정 후 111111111111111111111111
 
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
코딩 테스트 합격자 되기 C++ 00장~ 01장을 정리한 강의자료 입니다.
 

Java, android 스터티9

  • 2. 2 참조 교재 : Do it! 안드로이드 앱 프로그래밍 ㅁ 자바에서는 Graphics라는 클래스가 존재 - 하위 클래스 : Canvas, Paint, Bitmap, Drawable 등 - Canvas : 뷰의 표면에 직접 그릴 수 있게 만들어주는 객체와 이를 위한 메소드 정의 - Paint : 그래픽 그리기를 위해 필요한 색상 등의 속성을 담음 - Bitmap : 픽셀로 구성된 이미지로 메모상에 그래픽을 그림 - Drawable : 사각형, 이미지 등의 그래픽 요소가 객체로 정의 ㅁ 그래픽 그리기 순서 - 1단계 : 새로운 클래스를 만들고 뷰를 상속 받기 - 2단계 : 페인트 객체를 초기화하고 필요한 속성 설정 - 3단계 : onDraw() 메소드 내에 사각형을 그리는 메소드 호출 - 4단계 : onTouch() 메소드 내에 터치 이벤트를 처리하는 코드 작성 - 5단계 : 새로만든 뷰를 메인 액티비티에 추가 0. 지난주 복습
  • 3. 3 참조 프로젝트 : SampleCustomViewStyle 다운로드 : easyspub.com 실행화면 0. 지난주 복습
  • 4. 4 참조 프로젝트 : SampleCustomViewStyle 다운로드 : easyspub.com 첫번째 사각형을 그림 채우기 색상은 빨간색으로 설정 ㅁ 사각형 그리기 0. 지난주 복습
  • 5. 5 참조 프로젝트 : SampleCustomViewStyle 다운로드 : easyspub.com 첫번째 사각형의 테두리 설정 초록색으로 사각형의 테두리 그림 ㅁ 사각형 그리기 0. 지난주 복습
  • 6. 6 참조 프로젝트 : SampleCustomViewStyle 다운로드 : easyspub.com ㅁ 원 그리기 첫번째 원 그리기 Canvas객체의 drawCircle메소드를 이용해 원을 그립니다. 두번째 원 그리기 Canvas객체의 drawCircle메소드를 이용해 원을 그립니다. setAntiAlias속성값을 Ture로 줄경우 원이 부드럽게 그려집니다. 0. 지난주 복습
  • 7. 7 참조 프로젝트 : SampleCustomViewStyle 다운로드 : easyspub.com 첫번재 텍스트 Stroke스타일로 설정 두번재 텍스트 Fill스타일로 설정 ClipRect는 그리기 가 일어나는 영역 을 설정하는 메소드 0. 지난주 복습
  • 8. 8 참조 프로젝트 : PaintBoard 다운로드 : easyspub.com 실행화면 버전1 버전2 버전3 0. 지난주 복습
  • 9. 9 ㅁ 버전 1 소스코드가 너무 길어 그리는 부분만 분석 터치한 후 뗄 때 좌표 초기화 참조 프로젝트 : PaintBoard 다운로드 : easyspub.com0. 지난주 복습
  • 10. 10 ㅁ 버전 1 소스코드가 너무 길어 그리는 부분만 분석 터치할 때 눌린 좌표를 기준으로 선을 그림 참조 프로젝트 : PaintBoard 다운로드 : easyspub.com0. 지난주 복습
  • 11. 11 터치 한 상태에서 움직일 경우 계속해서 선을 그림 ㅁ 버전 1 참조 프로젝트 : PaintBoard 다운로드 : easyspub.com0. 지난주 복습
  • 12. 12 Invlidate메소드로 화면을 다시 그림 ㅁ 버전 1 참조 프로젝트 : PaintBoard 다운로드 : easyspub.com PaintBoard.java 코드 0. 지난주 복습
  • 13. 13 참조 프로젝트 : SampleCustomView 다운로드 : easyspub.com 1. 색상선택 부분 2. 펜 굵기/지우개 부분 3. 버전2와 버전 3의 다른점 찾기 + 버전3에서 추가된 내용 발표 0.5 지난주 복습(발표)
  • 14. 14 1. 스레드 ㅁ 스레드(Thread)의 필요성 - 메인 액티비티는 하나의 프로세스로 처리 * 대기시간이 길어질 시 많은 시간이 필요 - 멀티스레디 방식으로 해결 가능, 메모리 리소스 공유 - 리소스를 공유하기 때문에 데드락(Deadlock)발생 가능 - 런타임 예외라서 찾기가 힘듬 - 안드로이드에선 자바의 표준 Thread지원 참조 교재 : Do it! 안드로이드 앱 프로그래밍
  • 15. 15 1. 스레드 실행화면 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com
  • 16. 16 1. 스레드 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com 버튼 터치시 스레드에서 받은 값을 출력 함 MainActivity의 소스
  • 17. 17 1. 스레드 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com MainActivity의 소스 화면이 보이고 있을때 스레드를 실행
  • 18. 18 1. 스레드 참조 프로젝트 : SampleJavaThread 다운로드 : easyspub.com MainActivity의 소스 화면이 꺼져 있을때 스레드를 중지
  • 19. 19 2. 스레드 핸들러 ㅁ 프로세스가 생성되면 메인스레드는 메시지 큐를 실행, 메시지 큐를 이용해 메인 스레드가 처리할 메시지를 전달 하는 것이 핸들러 클래스 스레드와 스레드 핸들러 플로우 차트 참조 교재 : Do it! 안드로이드 앱 프로그래밍
  • 20. 20 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com 실행화면
  • 21. 21 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 스레드 핸들러 변수 선언과 새로운 핸들러 객체 생성
  • 22. 22 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 프로그래스 바(가로로 긴 막대) 0으로 초기화
  • 23. 23 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 액티비티 시작 시 스레드 생성 후 실행
  • 24. 24 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 1초마다 핸들러로 메시지 전송
  • 25. 25 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 스레드에서 작업 상태나 결과를 핸들러의 sendMessage()로 전송
  • 26. 26 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com MainActivity의 소스 새로운 Handler클래스 정의, 프로그래스 바를 5씩 증가시킴
  • 27. 27 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com handleMessage()메소드 내에서 전달된 정보를 이용해 UI 업데이트 MainActivity의 소스
  • 28. 28 2. 스레드 핸들러 참조 프로젝트 : SampleThread 다운로드 : easyspub.com Activity_main.xml의 소스 진행상태를 표기하기 위한 프로그래스 바를 정의
  • 29. 29 3. 스레드로 메시지 전송 MainActivity의 소스 ㅁ 앞에 그림은 서브스레드와 메시지 큐와의 메시지 전달, 하지만 서브스레드가 메인스 레드에게 메시지를 전달해야 되는 경우도 생기며, 이를 순 차적으로 처리하기 위해 메시 지 큐가 사용됨, 루퍼가 계속 돌며 메시지 큐에 있는 명령 들을 한 개 씩 처리 참조 교재 : Do it! 안드로이드 앱 프로그래밍
  • 30. 30 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com 실행화면 3. 스레드로 메시지 전송
  • 31. 31 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com 새로운 스레드 생성, 스레드를 생성하고 스레드를 위한 핸들러 를 만든다. MainActivity의 소스 3. 스레드로 메시지 전송
  • 32. 32 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com 새로만든 스레드에서 루퍼(Lopper)를 실행 MainActivity의 소스 3. 스레드로 메시지 전송
  • 33. 33 2. 스레드 핸들러 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com 새로만든 스레드에서 루퍼(Lopper)를 실행 MainActivity의 소스
  • 34. 34 2. 스레드 핸들러 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 텍스트 뷰와 텍스를 수정할 수 있는 에디트 텍스트를 위한 레퍼런스 변수 선언
  • 35. 35 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 메인스레드를 위한 핸들러 3. 스레드로 메시지 전송
  • 36. 36 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 서브스레드를 위한 핸들러 3. 스레드로 메시지 전송
  • 37. 37 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 텍스트 뷰와 텍스를 수정할 수 있는 에디트 텍스트를 위한 객체 생성 3. 스레드로 메시지 전송
  • 38. 38 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 생성된 객체를 레퍼런스 변수 참조(이름)를 이용해 activity_main.xml에 이미 만들어진 텍스트 뷰와 에디트 텍스트의 속성을 알 수 있음 3. 스레드로 메시지 전송
  • 39. 39 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 버튼이 눌릴 경우 스레드로 메시지를 보내고 해당 스레드를 실행 3. 스레드로 메시지 전송
  • 40. 40 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 새로 만든 스레드 핸들러, 메인 스레드의 핸들러로 메시시 전송 3. 스레드로 메시지 전송
  • 41. 41 참조 프로젝트 : SampleLopper 다운로드 : easyspub.com MainActivity의 소스 새로 만든 스레드 핸들러로 받은 메시지를 메인 스레드 핸들러에서 에디트텍스트에 메시로 표시 3. 스레드로 메시지 전송