CHAP 4. 이벤트 처리.

Slides:



Advertisements
Similar presentations
Android Application. 최신버전 안드로이드 SDK 설치 1. SDK 설치 접속.
Advertisements

All Rights Reserved, Copyright© UBIVELOX co.,Ltd LG U+ 과금 API 소개 Version1.0 Authorubivelox Date21-Feb
이벤트 처리  GUI 운영체제는 이벤트 드리븐으로 동작한다.  사용자와 상호 작용하려면 이벤트를 매끄럽게 처리하는 기술이 필요하다.  안드로이드에는 이벤트를 처리하는 다양한 방법이 있다.  팀 작업을 위해 모든 방법을 숙지해야 하며 자바의 고급 문법이 사용된다.
For Android 이재원.  페이스북 SDK 설치  2 가지 예제 & 소스  API 사용 예제 프로젝트 만들기  Graph API  참고사항 & 사이트.
제 2 강 프로젝트 구성과 View 안드로이드 앱 개발 강좌. 목 차목 차목 차목 차 목 차목 차목 차목 차 안드로이드 프로젝트 구성 2 에뮬레이터 사용법 3 버전과 screen size 4 5 Hello World 앱 작성하기 1 View 와 ViewGroup.
삼성소프트웨어멤버십 20 th 박희근 ( A n d r o i d.
객체지향프로그래밍 중간텀 울산대학교 Programming System Lab. 이태호. 목차 필수 요구사항 점검 – 클래스와 메서드, 맴버필드 ~ – 클래스는 머고 객체는 먼데요 – 주어진 소스는 어떤 의미가 있나여 필수 요구사항을 들어주자 ! – 주어진 소스에 어떤걸.
Android Application 데이터베이 스. 데이터베이스 활용하 기  안드로이드에 쓰이는 DBMS 의 이름은 SQLite.  SQLite 는 경량의 임베디드 데이터베이스 엔젠이며, 아이폰, 파이어폭스 등 여 러 곳에서 이미 많이 채택된 검증된 엔진이다. 
Unlocking Android 안드로이드 패키지 (1/2) 2 Unlocking Android 안드로이드 패키지 (2/2) 3.
6 메 뉴.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
CHAP 8. 그래픽.
CHAP 18. 멀티미디어.
CHAP 10. 액티비티와 인텐트.
CHAP 10. 액티비티와 인텐트.
Android Programming 고급위젯
액션바와 네비게이션
Contents 학습목표 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다. 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술 실습. 학습내용 이벤트 핸들러 여러 가지 이벤트.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
Android Application 애플리케이션 위젯.
CHAP 19. 구글맵.
Contents 학습목표 지금까지 배운 내용을 총정리하며 개발 툴에 대한 고급 사용법을 익힌다. 학습내용 개발툴.
○ 본 강의 자료는 이지스퍼블리싱(주)에서 제공하는 강의 교안입니다.
Contents 학습목표 이벤트를 처리하는 여러 가지 형식과 각 형식의 장단점에 대해 상세하게 연구하고 기본적인 이벤트에 대한 실습을 한다. 사용자의 입력을 자유자재로 처리하기 위해서 반드시 습득해야 하는 중요한 기술 실습. 학습내용 이벤트 핸들러 여러 가지 이벤트.
CHAP 7. 메뉴와 대화상자.
Contents 학습목표 Canvas와 Paint 객체를 통해 화면에 원하는 도형을 그리고 속성을 변경하는 기본적인 방법에 대해 소개한다. 토스트로 메시지를 출력하는 방법과 스피커를 통해 소리를 출력하는 방법에 대해서도 알아본다. 학습내용 캔버스 그리기 객체 쉐이더 그외.
Chap05 상속 5.1 상속의 개요 5.2 멤버 변수의 상속 5.3 메소드의 상속과 오버라이딩(Overriding)
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
Java Seminar 6.
첫 번째 애플리케이션 첫째 마당 - Chapter 03 Do It! 안드로이드 앱 프로그래밍 Jun. 2013
Ch.07-5 xml-rpc 사용하기 김상엽.
CHAP 6. 이벤트 처리.
모바일 서버 만들기 13장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
○ 본 강의 자료는 이지스퍼블리싱(주)에서 제공하는 강의 교안입니다.
UNIT 07 그림책 만들기 1/2 로봇 SW 콘텐츠 연구원 조용수.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
명품 JAVA Programming.
[INA470] Java Programming Youn-Hee Han
어댑터뷰 리스트 뷰, 그리드 뷰, 스피너, 갤러리 등을 묶어 어댑터 뷰라 부름
안드로이드 개요 2005년 휴대폰 소프트웨어 개발사인 Android를 구글이 인수 2007년 11월 오픈소스로 공개
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
CHAP 11. 액티비티와 인텐트.
CHAP 7. 메뉴와 대화상자.
명품 Java Programming.
○ 본 강의 자료는 이지스퍼블리싱(주)에서 제공하는 강의 교안입니다.
CHAP 8. 그래픽.
CHAP 6. 이벤트 처리.
UNIT 05 신문 만들기 로봇 SW 콘텐츠 연구원 조용수.
CHAP 14. 데이터베이스와 환경 설정.
CHAP 13. 네트워크.
어서와 Java는 처음이지! 제9장 인터페이스, 패키지.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Chap10 다중 스레드 Section 1 : 스레드 개요 Section 2 : Thread 클래스와 스레드 생명주기
CHAP 3. 첫번째 애플리케이션.
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
CHAP 13. 서비스와 방송 수신자.
Chap. 14 성능향상시키기 PS Lab. 이지연.
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
CHAP 5. 레이아웃.
제 4 장 클래스 작성 Lab 4- 2.
내장형 소프트웨어 -페인트 보드 만들기 발표자 : 백종인.
자바 5.0 프로그래밍.
Chap. 8 자바 가상 머신의 클래스 로더 사용 PS Lab. 이지연.
6장 클래스(상속).
자바 프로그래밍 Thread를 이용한 애니메이션 서울호서전문학교 게임프로그램개발과.
CHAP 11. 리소스와 보안.
CHAP 5. 메뉴와 대화상자.
Presentation transcript:

CHAP 4. 이벤트 처리

Lab: 여론 조사 앱 작성

입력 위젯 버튼, 텍스트 필드, 시크 바, 체크 박스, 줌 버튼, 토글 버 튼

입력 위젯의 종류

입력 위젯

버튼 텍스트 버튼 이미지 버튼

버튼 텍스트와 이미지를 동시에 가지는 버튼

버튼의 이벤트 처리

이벤트를 처리하는 가장 간단한 방법 레이아웃 안의 <Button> 요소에 onClick 속성을 추가

<ImageButton> 태그를 사용한 이미지 버튼

이벤트 처리 코드

레이아웃 파일 레이아웃 파일에 버튼을 정의한다. /res/layout/activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/android_button" android:padding="10dp" /> </LinearLayout>

폴링과 이벤트 구동 방식

안드로이드에서의 이벤트 처리 방법 XML 파일에 이벤트 처리 메소드를 등록하는 방법 가장 쉬운 방법 <- 권장 앞에서 살펴보았음! 이벤트 처리 객체를 생성하여 컴포넌트에 등록 일반적인 방법 뷰 클래스의 이벤트 처리 메소드를 재정의 커스텀 뷰를 작성하는 경우: (예) 게임

이벤트 처리 객체 사용 버튼에 붙은 리스너 객체가 이벤트를 처리한다.

이벤트 리스너

리스너의 종류

리스너 객체를 생성하는 방법 리스너 클래스를 내부 클래스로 정의한다. 리스너 클래스를 무명 클래스로 정의한다. 리스너 인터페이스를 액티비티 클래스에 구현한다. 가장 많이 사용되는 방법!

무명 클래스로 이벤트를 처리하는 예제 ... public class MainActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(getApplicationContext(), "버튼이 눌려졌습니다", Toast.LENGTH_SHORT).show(); } });

무명 클래스 클래스 몸체는 정의되지만 이름이 없는 클래스이다. 무명 클래스는 클래스를 정의하면서 동시에 객체를 생성 하게 된다. class ClickListener implements OnClickListener { ... } obj = new ClickListener(); obj = new OnClickListener() { .... };

코드 분석 무명 클래스 사용 ... public class MainActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(getApplicationContext(), "버튼 눌려졌습니다", Toast.LENGTH_SHORT).show(); } });

텍스트 필드 텍스트 필드(text field)를 사용하면 사용자가 앱에 텍스트 를 타이핑하여 입력할 수 있다. 단일 라인이거나 멀티 라인일 수 있다.

키보드 종류 지정

에디트 텍스트

에디트 텍스트의 이벤트 처리

체크 박스 XML로 체크 박스를 선언한다.

체크박스의 이벤트 처리

라디오 버튼

라디오 버튼의 이벤트 처리

라디오 버튼의 이벤트 처리

레이팅바 XML로 라디오 버튼을 정의한다. ... <RatingBar android:id="@+id/ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numStars="5" android:stepSize="1.0" />

레이팅바 … public class MainActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final RatingBar ratingbar = (RatingBar) findViewById(R.id.ratingbar); ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { Toast.makeText(getApplicationContext(), "New Rating: " + rating, Toast.LENGTH_SHORT).show(); } });   }

4주 목표 그림판 만들기

커스텀 컴포넌트 개발자가 직접 View 클래스를 상속받아서 필요한 위젯을 개발

이벤트 처리 메소드 재정의

재정의할 수 있는 콜백 메소드 onKeyDown(int, KeyEvent) onKeyUp(int, KeyEvent) onTrackballEvent(MotionEvent) onTouchEvent(MotionEvent) onFocusChanged(boolean, int, Rect)

예제

예제

터치 이벤트 일반적으로 커스텀 뷰를 정의하고 onTouchEvent() 재정 의 class MyView extends View { ... @Override public boolean onTouchEvent(MotionEvent event) { x = (int) event.getX(); y = (int) event.getY(); ... }

터치 이벤트의 종류

터치로 원 움직이기

터치 이벤트 예제 public class MainActivity extends AppCompatActivity { protected class MyView extends View { int x = 100, y = 100; String str; public MyView(Context context) { super(context); setBackgroundColor(Color.YELLOW); } @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(x, y, 100, paint); paint.setTextSize(50); canvas.drawText("액션의 종류: " + str, 0, 100, paint);

터치 이벤트 예제 @Override public boolean onTouchEvent(MotionEvent event) { x = (int) event.getX(); y = (int) event.getY(); if (event.getAction() == MotionEvent.ACTION_DOWN) str = "ACTION_DOWN"; if (event.getAction() == MotionEvent.ACTION_MOVE) str = "ACTION_MOVE"; if (event.getAction() == MotionEvent.ACTION_UP) str = "ACTION_UP"; invalidate(); return true; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyView w = new MyView(this); setContentView(w);

실행결과

터치로 곡선 그리기

터치로 곡선 그리기 #1

터치로 곡선 그리기 #2

터치로 곡선 그리기 #3

실행결과

Lab: 여론 조사 앱 작성

이벤트 처리

이벤트 처리

Lab: 온도 변환기 앱 작성 섭씨 온도를 받아서 화씨 온도로 변환하는 앱을 작성

핵심 코드