슬라이드 1

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

( )부록

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

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

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

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

13ÀåÃß°¡ºÐ

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

어댑터뷰

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

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

리니어레이아웃 - 2 -

03장

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt

Daum 카페

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부

슬라이드 1

01장

TipssoftAppActivity.java // 기본소스파일 main.xml // 배치와구성에관련된리소스파일 string.xml // 프로그램에서사용할문자열에관련된리소스파일 컴파일을하고나면 r.java 라는소스파일이하나추가되는데이파일은리소스파일을소스파일에서이용할수있도

헬로, 안드로이드 7 주차 멀티미디어 강대기동서대학교컴퓨터정보공학부

// 화면을터치하였을때해야할작업구현 case MotionEvent.ACTION_MOVE: // 화면을드래그하였때 // 화면을드래그하였을때해야할작업구현 case MotionEvent.ACTION_UP: // 화면에서터치가사라질때 // 화면에서터치가사라질때해야할자업구현 c

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

50_1953.pdf

2_안드로이드UI

슬라이드 1

안드로이드2_14

PowerPoint 프레젠테이션

임베디드 시스템 소프트웨어

슬라이드 1

학습목표 인텐트로다른액티비티나프로그램을실행시킬수있다. 웹뷰를통해웹화면을액티비티화면의일부로구성할수있다. 자바스크립트를통해안드로이드프로그램을호출하는방법을안다. 안드로이드응용프로그램에서웹서비스를이용하는방법을안다.

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

슬라이드 1

헬로, 안드로이드 11 주차 위치파악하기와감지하기 강대기동서대학교컴퓨터정보공학부

PowerPoint 프레젠테이션

위젯과레이아웃위젯은 View 클래스를상속해화면디스플레이와이벤트처리를할수있도록구현된스크린구성의최소단위를말한다. android.widget 패키지에는여러유형의위젯들이포함되어있다. TextView, ImageView, Button, ImageButton 등은가장간단한위젯들이

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

PowerPoint 프레젠테이션

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

12 주차 인텐트

<BFF8B5E5B7CEC0CCB5E5322E687770>

Microsoft PowerPoint - DoItAndroid_PART02_01_기본위젯과레이아웃_Rev.1.0 [호환 모드]

뷰그룹 ( 레이아웃 ) 레이아웃이름 ( 클래스이름 ) FrameLayout LinearLayout 설명단일객체를표현하기위한프레임. 왼쪽상단에하나의뷰를배치하기때문에나중 에그린객체만보여준다. 수평또는수직으로자손의뷰를배치. 뷰가들어갈만한공간이없을때는자동으로 스크롤바가나타난다

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

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

Microsoft PowerPoint - 양정수-Android_View_and_Window_System.ppt [호환 모드]

JAVA PROGRAMMING 실습 08.다형성

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint App Fundamentals[Part2].pptx

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

학습목표 게임이나프로그램에옵션을추가하는방법을알아본다. 이전의프로그램을계속하기위해상태를저장하는방법을알아본다. 게임에서현재의실행위치를저장하는방법에대해알아본다. 내부의파일시스템을읽고쓰는방법에대해알아본다. SD 카드에접근하는방법에대해알아본다. 여러 UI 위젯들에대해알아본다.

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

rmi_박준용_final.PDF

PowerPoint 프레젠테이션

콘텐츠 PowerPoint 디자인

Hello, World

DE1-SoC Board

XML Parser

제11장 프로세스와 쓰레드

12Àå PDF

변수이름 변수값 PATH ;C:\Program Files\Java\jdk1.8.0_45\bin CLASSPATH.;C:\Program Files\jdk1.8.0_45\lib\tools.jar JAVA_HOME C:\Program Files\Java\jdk1.8.0_45

(Microsoft PowerPoint - Ch06.ppt [\310\243\310\257 \270\360\265\345])

학습목표 SQLite 가뭔지알고, 이를사용할줄안다. SQL 의기본적인사용법들을안다. SQLite 을이용해기본적인데이터베이스응용프로그램을작성할수있다. 행을추가하는기본적인데이터베이스응용프로그램을작성할수있다. 쿼리를실행하는기본적인데이터베이스응용프로그램을작성할수있다. 쿼리결과

슬라이드 1

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 14주차 강의자료

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - 04기본위젯(Ver 1.0)

Android Master Key Vulnerability

Contents v 학습목표 뷰와레이아웃에대해이해하고, 레이아웃을활용, 관리하는여러가지기법들에대하여알아본다. v 내용 뷰 (View) 리니어레이아웃 (Linear Layout)

레이아웃 (Layout)

adlibr-android_4.x

슬라이드 1

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

안드로이드애플리케이션과통합하는데는자바가편하므로대표적인두가지라이브러리를비교해보자. 자바 ID3 태그라이브러리 jaudiotagger ID3v1, ID3v1.1, Lyrics3v1, Mp3, Mp4 (Mp4 오디오, M4a 지원범위 Lyrics3v2, ID3v2.2, ID

5장.key

MasoJava4_Dongbin.PDF

Chap 8 호스트시스템개발환경구성및 안드로이드개발환경구축

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

안드로이드 강의

Design Issues

PowerPoint Presentation

Spring Data JPA Many To Many 양방향 관계 예제

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

Microsoft PowerPoint UI-Layout.Menu.pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx

PowerPoint 프레젠테이션

01-OOPConcepts(2).PDF

PowerPoint Presentation

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1부

슬라이드 1

untitled



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

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

자바GUI실전프로그래밍2_장대원.PDF

PowerPoint 프레젠테이션

gnu-lee-oop-kor-lec10-1-chap10

Transcription:

헬로, 안드로이드 3 주차 사용자인터페이스디자인하기 (1) 강대기동서대학교컴퓨터정보공학부

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

차례 스도쿠예제소개하기 선언하여디자인하기 시작화면만들기 대체리소스사용하기 About 상자구현하기 테마적용하기 요약 퀴즈 연습문제

스도쿠예제소개하기

선언하여디자인하기 사용자인터페이스를디자인하는방법 절차적방법 C 나 Java 프로그램코드로 선언적방법 HTML 언어를통해표현하여 안드로이드의경우, 둘다지원 절차적방법 Java 코드 선언적방법 XML 표현 추천하는방법은 XML 표현

시작화면만들기 Program name Sudoku Package name org.example.sudoku Activity name Sudoku Application name Sudoku 안드로이드에뮬레이터는항상열어놓음 게임의오프닝화면구성 액티비티 Sudoku.java 리소스 R.java 절대건들지말것 레이아웃 main.xml ADT 의레이아웃에디터는별로좋지않다

Sudoku.java package org.example.sudoku; import android.app.activity; import android.os.bundle; public class Sudoku extends Activity implements OnClickListener { /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } }

R.java 그냥참고만하고절대건들지말것 /* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */ package org.example.sudoku; public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030002; } public static final class string { public static final int app_name=0x7f090000; } }

레이아웃 상위객체테두리안에서하나이상의하위객체와이들의위치를화면에설정하는동작을포함하는컨테이너 FrameLayout 모든하위객체가화면의왼쪽위에서시작하도록정렬 ( 예 : 탭뷰와이미지전환기 ) LinearLayout 객체를핚개의열또는행에정렬, 가장흔히사용됨 RelativeLayout 객체를서로의관계를기준으로또는상위객체와관계해서정렬함, 폼에서자주사용됨 TableLayout HTML 테이블과유사하게하위객체를열과행으로정렬함 컨테이너 객체들을담는객체

@+id/resid 구문 리소스아이디를정의하여이를통해참조핛수있음. android:id="@+id/continue_button " android:id="@+id/new_button" android:id="@+id/about_button" android:id="@+id/exit_button"

main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@color/background" android:layout_height="fill_parent" android:layout_width="fill_parent" android:padding="30dip" android:orientation="horizontal"> <LinearLayout android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_gravity="center"> <TextView android:text="@string/main_title" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:layout_marginbottom="25dip" android:textsize="24.5sp" /> <Button android:id="@+id/continue_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/continue_label" /> <Button android:id="@+id/new_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/new_game_label" /> <Button android:id="@+id/about_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/about_label" /> <Button android:id="@+id/exit_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/exit_label" /> </LinearLayout> </LinearLayout>

시작화면

자작시작화면 (main.xml) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent" android:padding="30dip" android:orientation="horizontal"> <LinearLayout android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_gravity="center"> <TextView android:text=" 헬로 " android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center" android:layout_marginbottom="25dip" android:textsize="24.5sp" /> <Button android:id="@+id/continue_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=" 다시시작 " /> <Button android:id="@+id/new_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=" 새게임 " /> <Button android:id="@+id/about_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="... 에관하여 " /> <Button android:id="@+id/exit_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=" 끝 " /> </LinearLayout> </LinearLayout>

자작시작화면 ( 화면갈무리 )

대체리소스사용하기 예를들어, 가로방향을위핚레이아웃지정 res/layout-land/main.xml 이외에모든리소스의대체버전을명시하는데에도디렉터리이름에리소스접미사를사용함 언어, 지역, 화소밀도, 해상도, 입력방법등

dip 와 sp 단순히픽셀단위로거리를지정하면, 640x480 화면과 1920x1200 화면에서다르게보일것 안드로이드의단위지정 px pixel 픽셀 in inch 인치 mm millimeter 밀리미터 pt point ( 인치의 1/72) dp (density independent pixel) 밀도에독립적인화소, 1 인치당 160 개의점이있는디스플레이에서 1 dp 는 1 px 과같음 dip dip sp (scale independent pixel) 스케일에독립적인화소, dp 와유사하나사용자의글꼴크기설정에의해측정됨

res/layout-land/main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@color/background" android:layout_height="fill_parent" android:layout_width="fill_parent" android:padding="15dip" android:orientation="horizontal"> <LinearLayout android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_gravity="center" android:paddingleft="20dip" android:paddingright="20dip"> <TextView android:text="@string/main_title" android:layout_height="wrap_content android:layout_width="wrap_content" android:layout_gravity="center" android:layout_marginbottom="20dip" android:textsize="24.5sp" /> <TableLayout android:layout_height="wrap_content" android:layout_gravity="center" android:layout_width="wrap_content" android:stretchcolumns="*"> <TableRow> <Button android:id="@+id/continue_button" android:text="@string/continue_label" /> <Button android:id="@+id/new_button" android:text="@string/new_game_label" /> </TableRow> <TableRow> <Button android:id="@+id/about_button" android:text="@string/about_label" /> <Button android:id="@+id/exit_button" android:text="@string/exit_label" /> </TableRow> </TableLayout> </LinearLayout> </LinearLayout>

가로방향레이아웃

About 상자구현하기 스도쿠에대핚정보가있는창이나옴 구현방법 새액티비티를정의하고시작시킴 AlertDialog 클래스를사용해보여줌 하위클래스인 Dialog 클래스를새뷰로팽창시켜보여줌 새액티비티를정의함 About 액티비티 이를위해새레이아웃파일을정의 res/layout/about.xml

res/layout/about.xml <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/andro id" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dip"> <TextView android:id="@+id/about_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/about_text" /> </ScrollView>

res/values/strings.xml <string name="about_title">about Android Sudoku</string> <string name="about_text">\ Sudoku is a logic-based number placement puzzle. Starting with a partially completed 9x9 grid, the objective is to fill the grid so that each row, each column, and each of the 3x3 boxes (also called <i>blocks</i>) contains the digits 1 to 9 exactly once. </string>

About.java package org.example.sudoku; import android.app.activity; import android.os.bundle; public class About extends Activity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.about); } }

Sudoku.java import android.content.intent; import android.view.view; import android.view.view.onclicklistener;... /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // Set up click listeners for all the buttons View continuebutton = findviewbyid(r.id.continue_button); continuebutton.setonclicklistener(this); View newbutton = findviewbyid(r.id.new_button); newbutton.setonclicklistener(this); View aboutbutton = findviewbyid(r.id.about_button); aboutbutton.setonclicklistener(this); View exitbutton = findviewbyid(r.id.exit_button); exitbutton.setonclicklistener(this); }

Sudoku.java public class Sudoku extends Activity implements OnClickListener {... public void onclick(view v) { switch (v.getid()) { case R.id.continue_button: startgame(game.difficulty_continue); break; //... } } case R.id.about_button: Intent i = new Intent(this, About.class); startactivity(i); break; // More buttons go here (if any)... case R.id.new_button: opennewgamedialog(); break; case R.id.exit_button: finish(); break;

AndroidManifest.xml 에다음을추가 <activity android:name=".about" android:label="@string/about_title" > </activity>

테마적용하기 <activity android:name=".about" android:label="@string/about_title" android:theme="@android:style/theme.dialog" > </activity>

요약 선언하여디자인을하는방법을설명하고, 실제예를보였다. 시작화면을만드는방법과대체리소스를사용하는방법을설명하고, 실제예를보였다. About 과같은상자를구현하고, 테마를적용하는법을설명하고, 실제예를보였다.

퀴즈 사용자인터페이스를디자인하는방법들은무엇이있는가? 자동으로생성되며리소스와관련이있는클래스는무엇인가? 레이아웃은무엇인가? 컨테이너란무엇인가? 리소스아이디는어떻게정의되는가? 대체리소스를사용해야하는경우는언제인가? 새로운액티비티는어디에등록해야하는가?

연습문제 프로그램을실행했을때, 초기화면을선언해보자. 이를위해 xml 파일을정의하고, 액티비티의메서드를수정하자. 선언핚초기화면에대해, 가로로회전했을때를위핚레이아웃을정의해보자. 새로운액티비티를만들어보자. 어떠핚일들을해야하는가?