• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
인터페이스?!-레이아웃
연속출석 :
1일 랭킹 : 6,397위 상사3
90%
90% (434 /480)
  • 댓글 1 |
  • 추천 4 |
  • 조회 2653 |
  • 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
    이제서야 공부를 시작하려고 하는데 님덕분에 많은도움이 되고 있네요 ^^
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    번호 제목 글쓴이 추천 조회 작성일
    73 일단 안드로이드가 뭔지부터 알고 넘어갈까요? +48 레오쏭 30 4524 11/05/03
    72 안드로이드라는 전쟁에 나가기 위한 준비를 해보자!-1.J… +32 레오쏭 20 4520 11/05/04
    71 어플개발을 위한 무기들을 준비해보자!-2.SDK +21 레오쏭 20 4009 11/05/04
    70 [C언어]강좌3. 내용을 출력해보자. +21 퉁퉁이 14 2700 11/10/16
    69 어플개발을 위한 무기들을 준비해보자!-3.에뮬레이터 +21 레오쏭 14 3920 11/05/04
    68 어플개발을 위한 무기들을 준비해보자!-4.이클립스 +24 레오쏭 13 4296 11/05/05
    67 안녕하세요?뉴페이스 레오입니다~^^ +14 레오쏭 10 2960 11/05/03
    66 에뮬레이터가 아닌 자신의 폰으로 바로바로 확인해보자~! +12 레오쏭 9 6976 11/05/06
    65 Hello~Android 출력해볼까요? +13 레오쏭 9 3362 11/05/08
    64 레알 Hello~Android 출력해볼까요? +8 레오쏭 9 3122 11/05/12
    63 인터페이스?!-키보드로 타이핑을 해볼까? +8 레오쏭 8 5914 11/07/19
    62 액티비티?!-1.버튼,액티비티추가하기 +8 레오쏭 7 3765 11/05/22
    61 [펌]안드로이드의 역사 +14 레오쏭 6 4376 11/05/14
    60 액티비티?!-2.버튼에 생명을 불어넣자! +12 레오쏭 6 7220 11/05/28
    59 권한?!-4.너에게 권한을 주마! +15 레오쏭 6 3042 11/06/28
    58 자바강좌 예제.1 글자를 넣어보자 +6 ★CsJ★ 6 2079 12/02/28
    57 [펌-초보금지]RAM최적화/LED밝기/내외장SD카드/ 스크립… +9 레오쏭 5 4765 11/10/07
    56 (디버그를 도와줘~)로그캣!!!! +6 레오쏭 5 6550 11/05/19
    55 [C언어]강좌1. C언어를 배우기위해 +1 퉁퉁이 5 3328 11/10/16
    54 인텐트에 대한 간단한 보충~ +1 레오쏭 5 2092 11/06/28
    53 인터페이스?? +2 레오쏭 5 2476 11/07/03
    52 추석을 기점으로 다시 강좌가 올라갑니다~ +6 레오쏭 4 1793 11/09/03
    51 [경고를해보자]토스트?!토스트란무엇인가(1) +1 레오쏭 4 3307 11/10/02
    50 업로드 지연 공지~ +11 레오쏭 4 2146 11/05/16
    49 액티비티?!-3.집으로 전화거는어플을 만들어볼까요? +4 레오쏭 4 2722 11/06/22
    48 안드로이드 프로그래밍 Tip +3 지워니 4 3655 12/01/27
    47 버튼?!텍스트뷰?! +4 레오쏭 4 2191 11/07/07
    46 인터페이스?!-레이아웃 +1 레오쏭 4 2654 11/07/10