• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
인터페이스?!-레이아웃
연속출석 :
1일 랭킹 : 6,397위 상사3
90%
90% (434 /480)
  • 댓글 1 |
  • 추천 4 |
  • 조회 2651 |
  • 2011-07-10 (일) 21:09
    이번시간엔 레이아웃에 대해 말씀 드리겠습니다.
    저저번 시간에 아래와 같이 설명을 드렸습니다.
    레이아웃은 5가지가 있으며 각각은 특징이 있습니다.
    LinearLayout : 프로젝트 생성시 기본으로 설정된 레이아웃으로 위아래 좌우로 직석형태의 배치형태를 하고 있습니다.
    RelativeLayout: 특정 객체를 기준으로 다른 객체의 위치를 결정합니다.
    TableLayout: HTML의 <Table>태그와 비슷합니다.
    FrameLayout: 가장 기본적 레이아웃이며 한번에 하나의 위젯만 출력할수 있습니다. 단독으로는 거의 쓰이지 않으며 여러 레이아웃과 조합해서 씁니다.
    AbsoluteLayout: x,y좌표로 위젯의 위치를 정합니다. 그래서 사용하기가 쉽지만 핸드폰마다 해상도가 다르고 지원하는 액정의 사이즈가 다르므로 핸드폰에 따라 프로그램이 엉망이 될수 있습니다. 그래서 구글에서도 공식적으로 사용을 하지말아달라고 권고하고 있습니다. (FrameLayout과 RelativeLayout을 혼용하면 대체 가능하다고 팁을 주고 있습니다.)
    하나씩 알아보죠.단 5번째인 AbsoluteLayout의 경우엔 구글에서도 쓰지말라고 공식적으로 말하고 있으므로 빼고 알아보겠습니다.
    *LinearLayout

    기본 생성되는 프로젝트에서 XML의 내용만 바꾸시면 됩니다. 여기서 중요한건 android:orientation인데
    이것은 가로로 배치할것인지 세로로 배치할것인지를 정하는 것입니다.
    다음은 width와 height는 너비와 높이를 어떻게 할것인지고 마지막의 weight가 중요한데요..이건 비율을 정해주는것입니다.
    지금 전 위에서 3개의 뷰를 배치했고 이것의 비율은 2:1:2로 했습니다. 그래서 아래와 같은 결과가 나오는 것입니다.

    *RelativeLayout

    소스를 보면 android:layout_toRightOf="@id/label"이 있습니다. 이건 label이라는 id를 가진 뷰의 오른쪽에 위치하겠다는 뜻이며
    Left는 왼쪽이고 below는 아래쪽입니다.ok버튼을 보시면 edit의 아래이면서 cancel의 왼쪽에 배치하기 위해 left도 사용했습니다.
    이처럼 서로서로를 기준으로 배치 하고자 할때 Relative레이아웃을 사용합니다.

    *TableLayout

    테이블로우의 경우는 한줄을 지정해 주는 것입니다. 일단 위에 소스는 한줄만 추가한거구요...^^
    가로와 새로의 배치된 뷰들의 간격이 일정한 경우에 쓰기 좋은 레이아웃입니다. 다이얼패드 같은거 말입니다..^^

    *FrameLayout
    마지막 레이아웃인 프레임 레이아웃입니다.
    프레임 레이아웃은 왼쪽 상단을 기준으로 배치하는 레이아웃입니다..^^


    수고하셨어요~^^
    P.S.개인적인 일이 많아 연재가 느려지는데다가..좀 여유가 생겨 일주일정도 여행을 다녀올까 합니다~
    모두 즐거운 여름시즌 되세요~^^


    [이 게시물은 더어플님에 의해 2016-07-12 15:23:56 개발 꿀팁에서 복사 됨]
    oselis 2011-07-14 (목) 11:38:34
    이제서야 공부를 시작하려고 하는데 님덕분에 많은도움이 되고 있네요 ^^
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    45 Android Virtual Device(AVD) 사용법 GNCkorea 1 6307 12/08/09
    44 안드로이드 프로젝트 생성 및 실행 GNCkorea 0 2332 12/08/09
    43 안드로이드 강좌 1 - 어플리케이션 개발 시작하기. SDK … GNCkorea 1 3370 12/08/09
    42 현재 위치 얻기 간단한 팁~! GNCkorea 0 1572 12/08/07
    41 이번에 개발한 쇼핑몰 앱 소스 공개합니다.(Android, iO… GNCkorea 0 7559 12/08/07
    40 이클립스 내에서 안드로이드 제공하는 소스 난독화(ProG… GNCkorea 0 5174 12/08/07
    39 Low memory killer / win death / Gallery 선택후 프로… GNCkorea 0 3347 12/08/07
    38 [이벤트] 프로그램강좌 포럼의 활성화를 위하여... +4 쨩쵸딩 4 1596 12/05/21
    37 자바강좌 예제.1 글자를 넣어보자 +6 ★CsJ★ 6 2079 12/02/28
    36 자바강좌 1-2 (자바의 데이터 타입과 연산자) +3 ★CsJ★ 3 2110 12/02/27
    35 자바강좌 1-1 (자바의 데이터 타입과 연산자) +2 ★CsJ★ 2 2972 12/02/26
    34 JAVA 언어 기초 +2 쿠미야 3 1865 12/02/14
    33 안드로이드 프로그래밍 Tip +3 지워니 4 3651 12/01/27
    32 Android 키보드 숫자형으로 시작하게 하기 +1 지워니 1 2303 12/01/27
    31 [C언어]강좌3. 내용을 출력해보자. +21 퉁퉁이 14 2695 11/10/16
    30 [C언어]강좌2. 간단한 실습준비 마무리 퉁퉁이 2 2209 11/10/16
    29 [C언어]강좌1. C언어를 배우기위해 +1 퉁퉁이 5 3324 11/10/16
    28 [경고를해보자]토스트?!토스트란무엇인가(2) +2 레오쏭 2 1965 11/10/11
    27 [펌-초보금지]RAM최적화/LED밝기/내외장SD카드/ 스크립… +9 레오쏭 5 4765 11/10/07
    26 [경고를해보자]토스트?!토스트란무엇인가(1) +1 레오쏭 4 3307 11/10/02
    25 슬라이딩 도어를 만들어 볼까요? +3 레오쏭 3 2795 11/10/02
    24 윈도우 사용자명 한글일때 에뮬레이터 오류 해결 방법 +3 레오쏭 3 3408 11/09/26
    23 추석을 기점으로 다시 강좌가 올라갑니다~ +6 레오쏭 4 1793 11/09/03
    22 버튼?!-라디오,체크,토글버튼 레오쏭 4 3612 11/08/10
    21 인터페이스?!-키보드로 타이핑을 해볼까? +8 레오쏭 8 5913 11/07/19
    20 인터페이스?!-레이아웃 +1 레오쏭 4 2653 11/07/10
    19 버튼?!텍스트뷰?! +4 레오쏭 4 2191 11/07/07
    18 인터페이스?? +2 레오쏭 5 2476 11/07/03