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

Similar documents
2_안드로이드UI

리니어레이아웃 - 2 -

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

Layout

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

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

PowerPoint 프레젠테이션

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

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

어댑터뷰

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

03장

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

슬라이드 1

레이아웃 (Layout)

2009년 상반기 사업계획

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

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

13ÀåÃß°¡ºÐ

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

( )부록

Daum 카페

01장

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

50_1953.pdf

<4D F736F F F696E74202D B3E25FB8F0B9D9C0CFBEDBC7C1B7CEB1D7B7A1B9D6205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

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

PowerPoint Template

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

슬라이드 1

Microsoft PowerPoint UI-Layout.Menu.pptx

Visual Basic 반복문

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

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

PowerPoint 프레젠테이션

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

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

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

슬라이드 1

PowerPoint Presentation

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

<BFF8B5E5B7CEC0CCB5E5322E687770>

슬라이드 1

e-비즈니스 전략 수립

PowerPoint 프레젠테이션

PowerPoint Presentation

안드로이드2_14

슬라이드 1

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

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

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

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A C0E520B5B5C5A5B8D5C6AE20C6C4C0CF20C0D4C3E2B7C220B9D720B4D9BEE7C7D120BAE420C5ACB7A1BDBA2E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

콘텐츠 PowerPoint 디자인

학습목표 2D 그래픽에대해배운다. Color, Paint, Canvas, Path, Drawable 클래스를배운다. 스도쿠의게임시작하기를구현하고, Game 클래스, PuzzleView 클래스를정의한다. 정의된클래스내에서보드를그리고, 숫자를그린다. 숫자입력, 힌트추가,

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

모바일애플리케이션접근성지침

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

PowerPoint 프레젠테이션

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

안드로이드 강의

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

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

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch07 - 포인터 pm0415

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

윈도우 프로그래밍의 개념

01 [ 일기장 ] 애플리케이션프로젝트작성 - [MyDiary] 앱 Mobile Apps >> [MyDiary] 앱프로젝트구조설계 일기장애플리케이션인 [MyDiary] 앱은메인화면과일기장의내용을작성하는화면으로이루어져있다. 화면이 2개라는것은액티비티가 2개이고액티비티에대

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

설계란 무엇인가?

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

슬라이드 1

Hello, World

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

chap 5: Trees

슬라이드 제목 없음

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

Microsoft PowerPoint - Java7.pptx

C++ Programming

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint Presentation

UI VoC Process 안

Microsoft Word - 김정훈.doc

추가 및 변경사항 ver 2.1 여러장의 이미지를 한번에 올리는 ZIP 불러오기 기능이 추가되었습니다. (p. 3) 테두리 설정 기능이 추가되었습니다. (p. 5) 크게보기 버튼의 위치를 선택하는 기능이 추가되었습니다. (p. 7) 세로가 긴 동영상의 권장크기가 800

<4D F736F F F696E74202D20446F E64726F69645F F30335FB4D9BEE7C7D1C0A7C1ACB0FAC0CCBAA5C6AEC8B0BFEBC7CFB1E25F52657

Javascript

01_피부과Part-01

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

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

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

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Transcription:

Do It! 안드로이드앱프로그래밍 PART 0 Chapter 01 기본위젯과레이아웃 Sep. 011 이지스퍼블리싱 ( 주 ) 제공강의교안저자 : 정재곤 이번장에서는무엇을다룰까요? 이번장에서는무엇을다룰까요? 화면을먼저만들어보고싶어요. 레이아웃을이용해 뷰란무엇일까요? 뷰를화면에배치해볼까요? 기본위젯사용하기 뷰란무엇일까요? 버튼 검색어 안드로이드 텍스트 레이아웃을이용해뷰를화면에배치해볼까요? 텍스트뷰나버튼과같은기본위젯을추가해볼까요? 텍스트 입력상자 검색하기 android:id="@+id/textview01" android:text= 검색어 " 4

강의주제및목차 PART CH1. 기본위젯과레이아웃 강의주제 기본위젯과레이아웃에대해이해하기 1 뷰와뷰그룹 6 테이블레이아웃 1. 뷰와뷰그룹 목차 레이아웃 7 스크롤뷰 리니어레이아웃 8 프레임레이아웃 4 상대레이아웃 9 기본위젯들 5 절대레이아웃 5 뷰와뷰그룹의정의 뷰의속성 뷰 (View) - 보통콘트롤이나위젯이라는이름으로불리는 UI 구성요소 layout_width, layout_height 뷰의폭과높이를설정함 - fill_parent (match_parent) 뷰그룹 (View Group) 무조건남아있는여유공간을채움 -wrap_content [ 뷰와뷰그룹의관계 ] - 뷰들을여러개포함하고있는것 - 뷰그룹을뷰에서상속하면뷰그룹도뷰가됨 위젯 (Widget) id 뷰에들어있는내용물의크기에따라뷰의크기가결정됨 - 뷰의 ID 를지정함 - 뷰중에서일반적인컨트롤의역할을하고있는것 레이아웃 (Layout) background - 뷰의배경을설정함 [ 버튼과리니어레이아웃의계층도 ] - 뷰그룹중에서내부에뷰들을포함하고있으면서그것들을배치하는역할을하는것 [fill_parent 와 wrap_content 값을폭과넓이에적용한예 ] 정수값 - 크기를고정된값으로만들고싶을때사용함 1. 뷰와뷰그룹 7 1. 뷰와뷰그룹 8

XML 레이아웃으로구성하기 뷰의크기지정에사용되는단위 1 android:text="layout" android:text="layout 1 단위단위표현설명 px 픽셀화면픽셀 dp 또는 dip 밀도독립적픽셀 (density independent pixel) 160dpi 화면을기준으로한픽셀 예 ) 1인치당 160개의점이있는디스플레이화면에서 1dp는 1px와같음. 1인치당 0개의점이있는디스플레이 h하면에서 1dp는 px와같음. 4 [fill_parent 와 wrap_content 값을폭과넓이에적용한예 ] android:text="layout" android:text="layout" 4 sp 또는 sip 축척독립적픽셀 (scale independent pixel) in 인치 1 인치로된물리적길이 mm 밀리미터 1 밀리미터로된물리적길이 가변글꼴을기준으로한픽셀로dp와유사하나글꼴의설정에따라달라짐 em 텍스트크기글꼴과상관없이동일한텍스트크기표시 1. 뷰와뷰그룹 9 1. 뷰와뷰그룹 10 뷰의 ID 속성 뷰의 background 속성 android:id="@+id/button" android:text="layout" [ 버튼의 id 추가 ] public class SampleLayoutActivity extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); Button button = (Button) findviewbyid(r.id.button ); [ 버튼의 id 참조 ] 인플레이션 (Inflation) - XML 레이아웃에정의된정보를메모리상에서객체로만드는객체화과정 - 애플리케이션이시작될때이과정을거쳐메모리상에만들어진객체들을참조하기위해 ID를지정함 id 속성은자바코드상에서 R.id.[ID] 와같은형태로참조함 ("@+id/... ) [Format] #RGB #ARGB #RRGGBB #AARRGGBB [ 배경색에알파값을적용하여투명도를조절하는경우 ] XML 레이아웃에서색상을지정할때는 # 기호를앞에붙인후, ARGB(A : Alpha, R : Red, G : Green, B : Blue) 의순서대로색상의값을기록함 16 진수값을지정할때는여러가지포맷을사용할수있음 1. 뷰와뷰그룹 11 1. 뷰와뷰그룹 1

PART CH1. 기본위젯과레이아웃 대표적인레이아웃 레이아웃이름 설명. 레이아웃 리니어레이아웃상대레이아웃프레임레이아웃절대레이아웃테이블레이아웃스크롤뷰. 레이아웃 - 박스 (Box) 모델 - 사각형영역들을이용해화면을구성하는방법 - 표준자바의 BoxLayout과유사 - 규칙 (Rule) 기반모델 - 부모컨테이너나다른뷰와의상대적위치를이용해화면을구성하는방법 - 하나의뷰만을보여주는레이아웃 - 가장단순한레이아웃이지만뷰를중첩시킨후포함되어있는뷰들의가시성속성을이용하여뷰를전환하는데자주사용됨 - 절대 (Absolute) 위치모델 - 좌표값을이용해화면을구성하는방법 - 더이상지원하지않음 - 격자 (Grid) 모델 - 격자모양의배열을이용하여화면을구성하는방법 - HTML에서많이사용하는정렬방식과유사하여실용적임 - 스크롤이가능한컨테이너 - 뷰또는뷰그룹이들어갈수있으며화면영역을넘어갈때스크롤기능제공 14 레이아웃에뷰를추가하는방식 레이아웃의기본속성 채우기 : fill model - 뷰를부모뷰의여유공간에어떻게채울것인지를설정함 방향 : orientation - 뷰를추가하는방향을설정함 정렬방향 : gravity - 뷰의정렬방향을설정함 여유공간 : padding - 뷰의여유공간을설정함 공간가중치 : weight - 뷰가차지하는공간의가중치값을설정함. 레이아웃 15. 레이아웃 16

PART CH1. 기본위젯과레이아웃 리니어레이아웃 방향설정하기. 리니어레이아웃 <?xml version="1.0" encoding="utf 8"? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation= "vertical" android:id="@+id/button01" 1 리니어레이아웃방향설정 android:text="button01" android:id="@+id/button0" android:text="button0" 첫번째버튼설정두번째버튼설정 프로젝트를처음만들었을때만들어지는리니어레이아웃은세로방향으로되어있음 순서대로세개의버튼을추가할경우에 XML과자바코드상에서설정하는방법은다음의코드와같음 android:id= "@+id/button0" android:text="button0" </LinearLayout 4 세번째버튼설정. 리니어레이아웃 18 리니어레이아웃 방향설정하기 ( 계속 ) 리니어레이아웃 자바코드에서구성하기 자바코드에서직접레이아웃객체를만들고파라미터설정 LinearLayout mainlayout = new LinearLayout(this); mainlayout.setorientation(linearlayout.vertical); 1 레이아웃객체생성 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 파라미터설정 Button button01 = new Button(this); [ 세로방향으로설정한경우 ] [ 가로방향으로설정을바꾼경우 ] [ 버튼의 layout_width 속성을 wrap_content로바꾼경우 ] button01.settext("button 01"); button01.setlayoutparams(params); mainlayout.addview(button0); 버튼객체생성하여추가 setcontentview(mainlayout); 4 화면설정. 리니어레이아웃 19. 리니어레이아웃 0

리니어레이아웃 정렬방향설정하기 리니어레이아웃 정렬방향설정하기 ( 계속 ) [ 두가지정렬속성 ] 정렬속성 layout_gravity gravity layout_gravity 설명 - 부모컨테이너의여유공간에뷰가모두채워지지않아여유공간안에서뷰를정렬할때 - 뷰에서화면에표시하는내용물을정렬할때 ( 텍스트뷰의경우, 내용물은글자가되고이미지뷰의경우내용물은이미지가됨 ) - 뷰의 layout_width 나 layout_height 속성을 wrap_content 로할경우에같이사용할수있음 id 속성은자바코드상에서 R.id.[ID] 와같은형태로참조함 ("@+id/... ) <?xml version="1.0" encoding="utf-8"? android:orientation= "vertical" android:id="@+id/button01" 1 리니어레이아웃방향설정 android:layout_gravity= "left" android:text="left" 첫번째버튼정렬. 리니어레이아웃 1. 리니어레이아웃 리니어레이아웃 정렬방향설정하기 ( 계속 ) 리니어레이아웃 정렬을위해사용할수있는값 [ 정렬을위해 gravity 속성에지정할수있도록정의된값 ] android:id="@+id/button0" android:layout_gravity= "center" android:text="center" android:id="@+id/button0" android:layout_gravity= "right" android:text="right" </LinearLayout 4 두번째버튼정렬 세번째버튼정렬 정렬속성값 top bottom left right center_vertical center_horizontal fill_vertical fill_horizontal center fill clip_vertical clip_horizontal - 대상객체를위쪽끝에배치하기 - 대상객체를아래쪽끝에배치하기 - 대상객체를왼쪽끝에배치하기 - 대상객체를오른쪽끝에배치하기 - 대상객체를수직방향의중앙에배치하기 - 대상객체를수평방향의중앙에배치하기 설명 - 대상객체를수직방향으로여유공간만큼확대하여채우기 - 대상객체를수평방향으로여유공간만큼확대하여채우기 - 대상객체를수직방향과수평방향의중앙에배치하기 - 대상객체를수직방향과수평방향으로여유공간만큼확대하여채우기 - 대상객체의상하길이가여유공간보다클경우에남는부분을잘라내기 - top clip_vertical 로설정한경우아래쪽에남는부분잘라내기 - bottom clip_vertical 로설정한경우위쪽에남는부분잘라내기 - center_vertical clip_vertical 로설정한경우위쪽과아래쪽에남는부분잘라내기 - 대상객체의좌우길이가여유공간보다클경우에남는부분을잘라내기 - right clip_horizontal 로설정한경우왼쪽에남는부분잘라내기 - left clip_horizontal 로설정한경우오른쪽에남는부분잘라내기 - center_horizontal clip_horizontal 로설정한경우왼쪽과오른쪽에남는부분잘라내기. 리니어레이아웃. 리니어레이아웃 4

리니어레이아웃 글자아랫줄정렬 리니어레이아웃 글자아랫줄정렬 <?xml version="1.0" encoding="utf-8"? android:orientation="horizontal" android:baselinealigned= "true" android:id="@+id/button01" android:gravity="right bottom" android:text=" 큰글씨 " android:textsize= "dp" 1 글자의아랫줄맞추기글자크기를크게하기 android:id="@+id/button0" android:text=" 중간글씨 " android:textcolor="#ff00ff00" android:textsize="dp" 글자크기를작게하기 android:id="@+id/button0" android:text=" 작은글씨 " android:textcolor="#ff0000ff" android:textsize="1dp" </LinearLayout 4 글자크기를좀더작게하기. 리니어레이아웃 5. 리니어레이아웃 6 리니어레이아웃 여유공간설정하기 리니어레이아웃 여유공간설정하기 ( 계속 ) padding 속성 - 뷰안의내용물인텍스트나이미지와뷰안의영역사이의여백을줄수있는방법. 리니어레이아웃 [padding 을이용한뷰내부의여백주기 ] [layout_margin 을이용한부모여유공간과의여백주기 ] 7 layout_margin 속성 - 부모컨테이너의여유공간과뷰사이의여백을줄수있는방법 위젯셀 - 위젯이나뷰들은부모컨테이너로부터할당된공간을차지하게되며이를 위젯셀 (cell) 이라고부름 <?xml version="1.0" encoding="utf-8"? android:orientation="horizontal" android:background= "#ffffffff" android:id="@+id/button01" 1 배경색설정 android:background="#ffffff00" android:text=" 텍스트 " android:textsize="4dp" android:padding= "0dp" 위젯내부여백설정. 리니어레이아웃 8

리니어레이아웃 여유공간설정하기 ( 계속 ) 리니어레이아웃 공간가중치설정하기 android:id="@+id/button0" android:background="#ff00ffff" android:text=" 텍스트 " android:textsize="4dp" android:layout_margin= "10dp" android:id="@+id/button0" 위젯과여유공간사이의여백설정 android:background="#ffff00ff" android:text=" 텍스트 " android:textsize="4dp" android:padding= "0dp" </LinearLayout 4 위젯내부여백설정 공간가중치는같은부모뷰에포함되어있는뷰들이여유공간을얼마나차지할수있는지를비율로지정한것 android:weight 속성사용. 리니어레이아웃 9. 리니어레이아웃 0 리니어레이아웃 공간가중치설정하기 리니어레이아웃 공간가중치설정하기 ( 계속 ) <?xml version="1.0" encoding="utf-8"? android:orientation= "vertical" 1 레이아웃방향설정 <LinearLayout android:orientation= "horizontal" android:background="#ffffffff" android:id="@+id/button01" android:background="#ffffff00" android:text=" 텍스트 " android:textsize="16dp" android:layout_weight= "1" 레이아웃방향설정공간가중치설정 android:id="@+id/button0" android:background="#ff00ffff" android:text=" 텍스트 " android:textsize="16dp" android:layout_weight= "1" android:id="@+id/button0" 4 공간가중치설정 android:background="#ffff00ff" android:text=" 텍스트 " android:textsize="16dp" android:layout_weight= "1" </LinearLayout 5 공간가중치설정. 리니어레이아웃 1. 리니어레이아웃

리니어레이아웃 공간가중치설정하기 ( 계속 ) 리니어레이아웃 공간가중치설정하기 ( 계속 ) <LinearLayout android:orientation= "horizontal" android:background="#ffffffff" android:id="@+id/button04" android:background="#ff00ffff" android:text=" 텍스트 " android:textsize="4dp" 6 레이아웃방향설정 android:layout_weight= "" 7 공간가중치설정 android:id="@+id/button05" android:background="#ffff00ff" android:text=" 텍스트 " android:textsize="4dp" android:layout_weight= "1" 8 </LinearLayout </LinearLayout 공간가중치설정. 리니어레이아웃. 리니어레이아웃 4 PART CH1. 기본위젯과레이아웃 상대레이아웃 상대레이아웃은다른뷰나부모뷰와의상대적인위치를이용해뷰를배치하는방법 4. 상대레이아웃 [ 상대레이아웃을이용한뷰의배치방법 ] 4. 상대레이아웃 6

상대레이아웃의속성사용 상대레이아웃의속성사용 ( 계속 ) <?xml version="1.0" encoding="utf-8"? <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:text=" 전체버튼 " android:textcolor="#ff000000" android:textsize="4sp" android:background="#ff00ffff" android:layout_centerinparent= "true" 1 한가운데배치 android:text=" 하단버튼 " android:textcolor="#ff000000" android:textsize="4sp" android:layout_alignparentbottom= "true" </RelativeLayout 아래쪽배치 4. 상대레이아웃 7 4. 상대레이아웃 8 상대레이아웃에서사용할수있는속성들 상대레이아웃에서사용할수있는속성들 [ 상대레이아웃에서부모컨테이너와의상대적위치를이용하는속성 ] [ 상대레이아웃에서다른뷰와의상대적위치를이용하는속성 ] 속성 설명 속성 설명 layout_above - 지정한뷰의위쪽에배치함 layout_alignparenttop - 부모컨테이너의위쪽과뷰의위쪽을맞춤 layout_below - 지정한뷰의아래쪽에배치함 layout_alignparentbottom - 부모컨테이너의아래쪽과뷰의아래쪽을맞춤 layout_toleftof - 지정한뷰의왼쪽에배치함 layout_alignparentleft - 부모컨테이너의왼쪽끝과뷰의왼쪽끝을맞춤 layout_torightof - 지정한뷰의오른쪽에배치함 layout_alignparentright - 부모컨테이너의오른쪽끝과뷰의오른쪽끝을맞춤 layout_aligntop - 지정한뷰의위쪽과맞춤 layout_centerhorizontal - 부모컨테이너의수평방향중앙에배치함 layout_alignbottom - 지정한뷰의아래쪽과맞춤 layout_centervertical layout_centerinparent - 부모컨테이너의수직방향중앙에배치함 - 부모컨테이너의수평과수직방향중앙에배치함 layout_alignleft layout_alignright layout_alignbaseline - 지정한뷰의왼쪽과맞춤 - 지정한뷰의오른쪽과맞춤 - 지정한뷰와내용물의아래쪽기준선 (baseline) 을맞춤 4. 상대레이아웃 9 4. 상대레이아웃 40

PART CH1. 기본위젯과레이아웃 테이블레이아웃 5. 테이블레이아웃 <?xml version="1.0" encoding="utf-8"? <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:stretchcolumns= "1" 1 폭에맞추어열을자동확장 <TableRow android:text="name : " android:textsize="4dp" android:padding="10dp" android:text=" 박찬기 " android:textsize="4dp" android:gravity="left" android:padding="10dp" </TableRow 테이블의첫번째행 5. 테이블레이아웃 4 테이블레이아웃 ( 계속 ) PART CH1. 기본위젯과레이아웃 <TableRow android:text="age : " android:textsize="4dp" android:padding="10dp" android:text="6" android:textsize="4dp" android:gravity="left" android:padding="10dp" </TableRow </TableLayout 테이블의두번째행 6. 스크롤뷰 5. 테이블레이아웃 4

스크롤뷰사용하기 스크롤뷰의 XML 레이아웃 스크롤뷰예제 -주어진영역보다큰이미지에스크롤이생기도록만들기 XML 레이아웃메인액티비티코드 -레이아웃코드작성 -메인액티비티코드작성 <?xml version="1.0" encoding="utf-8"? android:orientation="vertical" android:id="@+id/button01" android:layout_gravity="center" android:text="change Image" <HorizontalScrollView android:id="@+id/horscrollview01" 1 버튼스크롤뷰 6. 스크롤뷰 45 6. 스크롤뷰 46 스크롤뷰의 XML 레이아웃 ( 계속 ) 스크롤뷰의메인액티비티코드 <ScrollView android:id="@+id/scrollview01" <ImageView android:id="@+id/imageview01" </ScrollView </HorizontalScrollView </LinearLayout 4 스크롤뷰 이미지뷰 scrollview01 = (ScrollView) findviewbyid(r.id.scrollview01); imageview01 = (ImageView) findviewbyid(r.id.imageview01); Button button01 = (Button) findviewbyid(r.id.button01); scrollview01.sethorizontalscrollbarenabled(true); Resources res = getresources(); BitmapDrawable bitmap = (BitmapDrawable) 1 객체참조기능설정 res.getdrawable(r.drawable.system_architecture); int bitmapwidth = bitmap.getintrinsicwidth(); int bitmapheight = bitmap.getintrinsicheight(); imageview01.setimagedrawable(bitmap); 이미지참조 imageview01.getlayoutparams().width = bitmapwidth; imageview01.getlayoutparams().height = bitmapheight; 4 크기설정 6. 스크롤뷰 47 6. 스크롤뷰 48

스크롤뷰의메인액티비티코드 PART CH1. 기본위젯과레이아웃 button01.setonclicklistener(new OnClickListener() { public void onclick(view v) { changeimage(); ); private void changeimage() { Resources res = getresources(); BitmapDrawable bitmap = (BitmapDrawable) res.getdrawable(r.drawable.activity_lifecycle); int bitmapwidth = bitmap.getintrinsicwidth(); int bitmapheight = bitmap.getintrinsicheight(); imageview01.setimagedrawable(bitmap); imageview01.getlayoutparams().width = bitmapwidth; imageview01.getlayoutparams().height = bitmapheight; 5 리소스변경 7. 프레임레이아웃 6. 스크롤뷰 49 프레임레이아웃과뷰의전환 프레임레이아웃과뷰의전환 XML 레이아웃 뷰전환예제 -프레임레이아웃을이용해뷰를중첩하여만들기 -버튼을누르면다른이미지로전환하기 XML 레이아웃메인액티비티코드 -레이아웃코드작성 -메인액티비티코드작성 <?xml version="1.0" encoding="utf-8"? android:orientation="vertical" android:id="@+id/button01" 1 전환버튼 android:layout_gravity="center" android:text="change Image" <FrameLayout 화면채우기 7. 프레임레이아웃 51 7. 프레임레이아웃 5

프레임레이아웃과뷰의전환 XML 레이아웃 프레임레이아웃과뷰의전환 메인액티비티코드 <ImageView android:id="@+id/imageview01" android:src="@drawable/activity_lifecycle" android:visibility= "invisible" <ImageView android:id="@+id/imageview0" android:src="@drawable/system_architecture" 이미지뷰설정 android:visibility= "visible" </FrameLayout </LinearLayout 4 이미지뷰설정 package org.androidtown.ui;... public class SampleFrameLayoutActivity extends Activity { Button button01; ImageView imageview01; ImageView imageview0; 1 객체참조 int imageindex = 0; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); button01 = (Button) findviewbyid(r.id.button01); imageview01 = (ImageView) findviewbyid(r.id.imageview01); imageview0 = (ImageView) findviewbyid(r.id.imageview0); button01.setonclicklistener(new OnClickListener() { public void onclick(view v) { changeimage(); ); 7. 프레임레이아웃 5 7. 프레임레이아웃 54 프레임레이아웃과뷰의전환 메인액티비티코드 PART CH1. 기본위젯과레이아웃 private void changeimage() { if (imageindex == 0) { imageview01.setvisibility(view.visible); imageview0.setvisibility(view.invisible); imageindex = 1; else if (imageindex == 1) { imageview01.setvisibility(view.invisible); imageview0.setvisibility(view.visible); imageindex = 0; 이미지뷰설정 이미지뷰설정 7. 프레임레이아웃 55

기본위젯 텍스트뷰의속성 기본위젯 텍스트뷰의속성사용 텍스트뷰 - text : 텍스트뷰에보이는문자열을설정할수있음 - textcolor : 텍스트뷰에서표시하는문자열의색상을설정함 : 색상설정은 "#AARRGGBB" 포맷을일반적으로사용 (Alpha, Red, Green, Blue) : 투명도를나타내는 Alpha( 색상만표현할때 - "FF", 투명 - 00, 반투명 - "88 ) - textsize : 텍스트뷰에서표시하는문자열의크기를설정함 ("dp" 나 sp" 또는 "px" 등의단위값을사용함 ) - textstyle : 텍스트뷰에서표시하는문자열의스타일속성을설정함 ("normal", "bold", "italic" 등의값을지정할수있음 ) - typeface : 텍스트뷰에서표시하는문자열의폰트를설정함 ("normal", "sans", "serif", "monospace") - singleline : 텍스트뷰에서표시하는문자열이한줄로만표시되도록설정함 <?xml version="1.0" encoding="utf-8"? android:orientation="vertical" android:id="@+id/textview01" android:background= "#ff000055" 1 배경색설정 android:padding="px" android:text=" 여기에사용자이름을입력하세요." android:textsize= "sp" 크기설정 android:textstyle= "bold" android:textcolor= "#88ff8888" android:singleline= "true" android:gravity="center" 5 </LinearLayout 스타일설정 4 색상설정한줄설정 57 58 기본위젯 버튼의속성사용 기본위젯 버튼의속성사용 ( 계속 ) <RadioGroup <?xml version="1.0" encoding="utf-8"? android:orientation="vertical" android:id="@+id/btnexit" android:text=" 선택 " android:textsize="4dp" android:textstyle="bold" android:gravity="center" 1 기본버튼 android:id="@+id/radiogroup01" android:orientation="horizontal" android:paddingleft="5dp" android:paddingright="5dp" <RadioButton android:id="@+id/radio01" android:layout_weight="1" android:text=" 남성 " android:textcolor="#ffaaff10" android:textstyle="bold" android:textsize="4dp" 라디오그룹 첫번째버튼 59 60

기본위젯 버튼의속성사용 ( 계속 ) 기본위젯 버튼의속성사용 ( 계속 ) <RadioButton android:id="@+id/radio0" android:layout_weight="1" 4 두번째버튼 android:text=" 하루종일 " android:text=" 여성 " android:textsize="4dp" android:textcolor="#ffaaff10" android:paddingright="10dp" android:textstyle="bold" android:textsize="4dp" </RadioGroup <LinearLayout android:gravity="center_vertical center_horizontal" android:paddingtop="10dp" android:textcolor="#ffaaff10" <CheckBox android:id="@+id/allday" </LinearLayout </LinearLayout 5 체크박스 61 6 기본위젯 입력상자의속성사용 기본위젯 이미지뷰의속성사용 <?xml version="1.0" encoding="utf-8"? android:orientation="vertical" <EditText android:id="@+id/txtusername" android:textsize="18sp" android:autotext= "true" 1 설정 android:capitalize= "words" 변경 android:hint= " 이름을입력하세요." </EditText </LinearLayout 표시 <?xml version="1.0" encoding="utf-8"? <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" <ImageButton android:id="@+id/imagebutton01" android:background="@drawable/ok_btn" android:layout_width="48px" 1 이미지버튼 android:layout_height="48px" android:layout_x="10px" android:layout_y="1px" </ImageButton <ImageView android:id="@+id/imageview01" android:background="@drawable/person" android:layout_width="64px" android:layout_height="64px" android:layout_x="160px" android:layout_y="160px" </ImageView </AbsoluteLayout 이미지뷰 6 64

참고문헌 [ References] 기본서적 011, 정재곤, Do it! 안드로이드앱프로그래밍, 이지스퍼블리싱 ( 주 ) Android Website http://www.android.com/ Google Developer s Conference http://code.google.com/events/io/ Android SDK Documentation References 65