슬라이드 1

Similar documents
어댑터뷰

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

03장

13ÀåÃß°¡ºÐ

( )부록

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

01장

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

PowerPoint Presentation

C# Programming Guide - Types

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

01-OOPConcepts(2).PDF

리니어레이아웃 - 2 -

Orcad Capture 9.x

Interstage5 SOAP서비스 설정 가이드

PowerPoint 프레젠테이션

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다.

PowerPoint 프레젠테이션

PCServerMgmt7

DocsPin_Korean.pages

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

02 C h a p t e r Java

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

THE TITLE

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

Microsoft PowerPoint - CSharp-10-예외처리

Secure Programming Lecture1 : Introduction

쉽게

슬라이드 1

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

PowerPoint Template

슬라이드 1

PowerPoint 프레젠테이션

제목을 입력하세요.

<4D F736F F D20284B B8F0B9D9C0CF20BED6C7C3B8AEC4C9C0CCBCC720C4DCC5D9C3F720C1A2B1D9BCBA2020C1F6C4A720322E302E646F6378>

초보자를 위한 자바 2 21일 완성 - 최신개정판

제8장 자바 GUI 프로그래밍 II

슬라이드 1

서현수

Intro to Servlet, EJB, JSP, WS

Microsoft PowerPoint UI-Layout.Menu.pptx

JVM 메모리구조

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

Dialog Box 실행파일을 Web에 포함시키는 방법

Microsoft PowerPoint - 4-UI 애플리케이션

비긴쿡-자바 00앞부속

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint Presentation

슬라이드 1

thesis

Activity

DE1-SoC Board

Microsoft Word - KSR2014S042

No Slide Title

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law),

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

Microsoft PowerPoint - chap06-2pointer.ppt

자바 프로그래밍

PowerPoint Presentation

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

콘텐츠 PowerPoint 디자인

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

rmi_박준용_final.PDF

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

슬라이드 1

JAVA PROGRAMMING 실습 08.다형성

1

gnu-lee-oop-kor-lec06-3-chap7

Microsoft PowerPoint - o8.pptx

Something that can be seen, touched or otherwise sensed

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

오버라이딩 (Overriding)

1부

¾Èµå·ÎÀÌµå ³¹Àå-Åë.PDF

Observational Determinism for Concurrent Program Security

Network Programming

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

PowerPoint 프레젠테이션

초보자를 위한 C++

thesis

final_thesis

Week13

Microsoft PowerPoint - Java7.pptx

歯Phone

MasoJava4_Dongbin.PDF

오핀 (OFIN) SDK Guide Fintech Mobile SDK Guide - Android V 1.0 OPPFLIB 1

Transcription:

Android Mobile Application Development Part 2

Agenda Part 1 Build Develop Environment Create new Project Composition of Project Simulate Application Part 2 User Interface Activity Toast Preference Log

User Interface Android Application UI 다루기

User Interface (1/3) User Interface of Android Java View & ViewGroup View Hierarchy ViewGroup ViewGroup View View View View View

User Interface (2/3) View ViewGroup View Object ViewGroup Object 안드로이드플랫폼상의사용자인터페이스를표현하는기본단위 안드로이드플랫폼상의 View 와 ViewGroup 의묶음단위 SubClass : Widget SubClass : Layout Button, TextField, etc Linear, Relative, Tabular, etc

User Interface (3/3) View & ViewGroup 의구성 LinearLay out LinearLay out LinearLay out Button Button Button Button

Activity Activity 안드로이드에서의과제 / 작업의단위 Widget 과 Layout 을제어한다. android.app.activity Class 응용프로그램의각화면마다 Activity 를정의하고구현하는데많은시간을 들이게된다. Example 시동 / 스플래시화면 주메뉴화면 기능 1 화면 기능 2 화면 Splash Activity Main Menu Activity 하나의 Activity 는하나의 App. 화면을대표 기본적으로 Activity 마다 UI 파일각각정의 Function 1. Activity Function 2. Activity

User Interface & Activity VG VG VG VG Splash Activity VG V V V V VG V UI Event Main Menu Activity V V V V Function 1. Activity Function 2. Activity Layout Hierarchy Activity Hierarchy Handle

Summary 안드로이드의 UI 는 View 와 ViewGroup 으로이루어진구조를갖고있다. View 에는 Widget, ViewGroup 에는 Layout 이라는 Sub Class 가있다. 안드로이드응용프로그램은 Activity Class 라는실행단위를갖는다. 하나의 Activity Class 는하나의 UI 로부터 Event 를받아 Handling 한다.

Widget View View Object android.widget 패키지 각각의 widget 은태그로구분되며 속성이존재한다. 안드로이드플랫폼상의사용자인터페이스를표현하는기본단위 SubClass : Button, TextField, etc TextView 화면에문자를출력 Button 사용자의선택입력 EditText 문자입력

Layout ViewGroup ViewGroup Object 안드로이드플랫폼상의 View 와 ViewGroup 의묶음단위 SubClass : Linear, Relative, Tabular, etc android.layout 패키지 웹디자이너들이 HTML 을사용하는것과 비슷하게, 안드로이드응용프로그램의 사용자인터페이스디자이너는 XML 을 이용한다. Linear Layout View 들을차곡차곡쌓는 ( 선형적으로 ) 배치 ( 가장많이사용 ) Relative Layout 부모와자식, 자식과자식간의상대적인배치 Frame Layout 좌측상단에겹쳐서쌓는배치 Table Layout 표형태로배치

User Interface Development Usage Case1: xml 파일에미리정의 Compile Time xml 파일에정의된 view, viewgroup의 id를이용하여 activity class에서 findviewbyid() 메서드로연결하여 Event를 Handling 한다. Case2: Activity class 에서동적으로생성 Run Time Activity class 내부에서 view/viewgroup 객체를생성하여현재화면에 addview() 메서드로추가할수있다.

Usage Case1 (1/4) xml 파일에서정의후 Activity 에서 ID 를찾는다. 1. xml 파일에 TextView 추가 2. Activity class 에서 TextView 선언 3. Activity 에서 findviewbyid 메서드로할당 레이아웃 (xml) 과소스코드 (activity) 를연결

Usage Case1 (2/4)

Usage Case1 (3/4)

Usage Case1 (4/4) TextView 패키지 TextView 객체선언 xml 파일에정의된 textview1 과연결

Usage Case2 (1/3) Activity에서생성후 Layout에표시한다. 1. Activity에서 TextView 생성 new 메서드사용 2. TextView 객체를 ContentView 로생성 setcontentview 메서드사용

Usage Case2 (2/3)

Usage Case2 (3/3)

Other facts Listener (implementation in Activity) 객체에서 Event가발생하였을때이를감지하고수용하여실행되는함수 Widget이발생시키는 UI Event도 Handling Ex.) Touch, KeyPress, SensorDataReceive, Properties (setup in xml file) Widget의속성 Ex.) Size, Padding, ImageResource,

Example (1/4) TextView, Button, EditText 를이용하여버튼을누르면편집한문자열이출력되는예제 main.xml

Example (2/4) Activity Class 2. 객체할당 1. 객체선언 3. Listener 등록

Example (3/4) Hierarchy Hierarchy 구성된화면실제화면

Example (4/4) Properties <TextView android:id="@+id/textview1" android:textsize="40dp" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center" android:layout_weight="1" android:text="massage" > <EditText android:id="@+id/edittext1" android:textsize="20dp" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="enter Text" android:layout_weight="1" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearlayout1" android:orientation="horizontal" android:layout_weight="0" > <Button android:layout_width="wrap_content" android:layout_gravity="center" android:textsize="20dp" android:id="@+id/button1" android:layout_height="wrap_content" android:layout_weight="0" android:text="refresh" > xml code

Summary Xml 파일에정의하여 Activity 로불러옴 Activity Class 에서동적으로생성 Listener 를이용하여 Event Handling Property 를이용하여 UI Design

Activity Application 의실행단위

Activity 프로그램에서의 화면하나 반드시 View 나 View Group 를가져야한다. Activity 는서로중첩되지않으며독립적이다.(View 는중첩된다.) 프로세스도독립적이므로데이터의전달이쉽지않다.

LifeCycle 3 States in Activity Activated 화면의전면에출력 Paused 화면에는출력되지만포커스를잃음 Popup, Notification Stopped 화면에서완전히사라짐

Activity 실행 (1/2) 1 Message (Intent) Broker (Android OS) Caller (Activity) Callee (Activity) Application (Android Package) Message (Intent) 2 1. Caller Activity 가 Message 를생성하여 OS 에게전달 2. OS 는받은메시지에명시되어있는데로 Callee Activity 를실행 Android 는 OSGi(Open Service Gateway initiative) 의 Bundle 실행개념을도입했다.

Activity 실행 (2/2) 1 Message (Intent) Broker (Android OS) Message (Intent) 2 Caller (Activity) Other (Activity) Callee (Activity) Other (Activity) Application (Android Package) Application (Android Package) Intent Filter 를사용하면다른 Application 의 Activity 도호출할수있다.

Activity 간의통신 (1/3) Caller.java Activity 실제실행경로 Callee.java Activity new intent +Caller, +Callee getintent putextra +TextIn TextIn 데이터이동 ( 개념 ) getstringextra TextIn startactivityforresult new intent onactivityresult putextra +TextOut getstringextra TextOut TextOut setresut

Activity 간의통신 (2/3) 순서 Activity 동작 함수 1 Caller Intent를생성하여 Caller와 Callee 명시 Intent 생성자 2 Caller Intent에 TextIn 이라는문자열삽입 putextra() 3 Caller 결과값을리턴받는것을명시하며 Intent를 OS에게전달 startactivityforresult() 4 Callee OS에의해서실행 5 Callee OS가전달한 Intent를받음 getintent() 6 Callee 전달받은 Intent에서 TextIn이라는문자열추출 getstringextra() 7 Callee 새로운 Intent를생성 Intent 생성자 8 Callee Intent에 TextOut 이라는문자열삽입 putextra() 9 Callee 결과값을 Caller에게전달 setresult() 10 Caller 이벤트헨들러로 Callee가전달한 Intent를받음 onactivityresult() 11 Caller 전달받은 Intent에서 TextOut 이라는문자열추출 getstringextra()

Activity 간의통신 (3/3) Intent Class 값을저장하는 Method Intent putextra(string name, int value) Intent putextra(string name, String value) Intent putextra(string name, boolean value) 저장된값을꺼내오는 Method int getintextra(string name, int defaultvalue) String getstringextra(string name) boolean getbooleanextra(string name, boolean defaultvalue) Activity Class 리턴값을돌려받기위해누가호출했는지알려주는 Method public void startactivityforresult(intent intent, int requestcode) 리턴값을돌려받는 Method protected void onactivityresult(int requestcode, int resultcode, Intent data)

Toast 간단한팝업창

Toast (1/2) Application 에서발생한 Event 를 visual 하게화면에뿌려주는 Class 시스템전체에서 1 개만존재 다른 Application이사용중이면자동으로기다렸다출력 현재 Toast를취소하고출력가능 옵션 Text 출력 이미지출력 위치지정

Toast (2/2) 생성 Method static Toast maketoast(context context, int resid, int duration) context : 메시지를출력하는주체 MainActivity.this resid : 출력할문자열의 ID R.String.name duration : 메시지출력지속시간 LENGTH_SHORT(2 초 ), LENGTH_LONG(3.5 초 ) static Toast maketoast(context context, CharSequence text, int duration) 옵션 Method text : 출력할메시지 LifecareScienceLAB void setgravity(int gravity, int, xoffset, int yoffset) void setmargin(float horizonmargin, float verticalmargin) void settext(charsequence s) void setduration(int duration) void setview(view view) 메시지를보이거나숨기는 Method void show() void cancel()

Preference 설정값 / 이전상태등을저장

Preference 응용프로그램의정보를영구적 (not in RAM) 으로저장하는방식 Simple File I/O Store in Inner Memory 1MB 미만의저용량데이터저장에유용 설정값저장 이전실행상태저장 최소단위 4kB

Preference Import Import Package import android.content.sharedpreferences; Preference 선언 SharedPreferences setting; setting = getsharedpreferences( APPLICATION", 0); Import Variable 고유한이름 ( APPLICATION ) 으로 Preference 를 Load 한다. int setting.getint(string key, int defvalue) Key 라는이름으로저장된정수를가져온다. 저장되어있지않으면 defvalue 를반환 String setting.getstring(string key, String defvalue) Key 라는이름으로저장된문자열을가져온다. 저장되어있지않으면 defvalue 를 반환 boolean setting.getboolean(string key, boolean defvalue) Key 라는이름으로저장된논리형변수를가져온다. 저장되어있지않으면 defvalue 를반환

Preference Export Import Package import android.content.sharedpreferences; Preference 선언 SharedPreferences.Editor preeditor; preeditor = setting.edit(); 기존에선언되어있는 Preference로부터 Editor를 Load한다. Export Variable preeditor.putint(string key, int Value) Key 라는이름의정수형변수내보내기, putstring/putboolean 등도가능 preeditor.commit() 변수저장을확정한다. 변수를내보낸후 commit() 을호출해야적용된다. preeditor.remove(string Key) Key 라는이름의변수를삭제한다. preeditor.clear() 현재저장되어있는모든변수를삭제한다.

Log Eclipse 로실행중인 Application 의상태확인하기

Log (1/2) 개발자를위한디버깅용메시지 Eclipse를통해서확인가능 LogCat을이용하여확인 다양한메시지필터 Log.v : verbose Log.i : information Log.w : warning Log.e : error Log.d : debugging Log.x(String tag, String msg) tag : 사용자정의메시지분류 msg : 출력할메시지 E-2

Log (2/2) E-1

Summary Android Application 은 XML 형식의 User Interface 를지원한다. Activity 는 Application 의최소실행단위로각화면마다이를정의하고구현하는데많은비용이소모된다. 각각의 Activity 는 OS 내에서독립적으로실행되어서로보호받지만메모리공유가어렵다. Anrdoid 는 OSGi 의개념을수용하여 Acticity 를실행할때 Broker 를거치게된다. END