• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
인터페이스?!-레이아웃
연속출석 :
1일 랭킹 : 6,397위 상사3
90%
90% (434 /480)
  • 댓글 1 |
  • 추천 4 |
  • 조회 2673 |
  • 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 현재 위치 얻기 간단한 팁~! GNCkorea 0 1605 12/08/07
    72 [이벤트] 프로그램강좌 포럼의 활성화를 위하여... +4 쨩쵸딩 4 1607 12/05/21
    71 추석을 기점으로 다시 강좌가 올라갑니다~ +6 레오쏭 4 1807 11/09/03
    70 JAVA 언어 기초 +2 쿠미야 3 1875 12/02/14
    69 [경고를해보자]토스트?!토스트란무엇인가(2) +2 레오쏭 2 1980 11/10/11
    68 자바강좌 예제.1 글자를 넣어보자 +6 ★CsJ★ 6 2087 12/02/28
    67 인텐트에 대한 간단한 보충~ +1 레오쏭 5 2099 11/06/28
    66 자바강좌 1-2 (자바의 데이터 타입과 연산자) +3 ★CsJ★ 3 2127 12/02/27
    65 업로드 지연 공지~ +11 레오쏭 4 2157 11/05/16
    64 버튼?!텍스트뷰?! +4 레오쏭 4 2213 11/07/07
    63 [C언어]강좌2. 간단한 실습준비 마무리 퉁퉁이 2 2224 11/10/16
    62 Android 키보드 숫자형으로 시작하게 하기 +1 지워니 1 2322 12/01/27
    61 안드로이드 프로젝트 생성 및 실행 GNCkorea 0 2345 12/08/09
    60 인터페이스?? +2 레오쏭 5 2492 11/07/03
    59 인터페이스?!-레이아웃 +1 레오쏭 4 2678 11/07/10
    58 [C언어]강좌3. 내용을 출력해보자. +21 퉁퉁이 14 2713 11/10/16
    57 액티비티?!-3.집으로 전화거는어플을 만들어볼까요? +4 레오쏭 4 2738 11/06/22
    56 슬라이딩 도어를 만들어 볼까요? +3 레오쏭 3 2804 11/10/02
    55 안드로이드 강좌 6 - Java 코드(Code)에서 뷰(View) 다… GNCkorea 0 2900 12/08/09
    54 안녕하세요?뉴페이스 레오입니다~^^ +14 레오쏭 10 2974 11/05/03
    53 자바강좌 1-1 (자바의 데이터 타입과 연산자) +2 ★CsJ★ 2 2988 12/02/26
    52 윈도우8과 함께 등장한 윈도우 스토어, 자유와 통제의 … GNCkorea 0 3038 12/08/10
    51 권한?!-4.너에게 권한을 주마! +15 레오쏭 6 3059 11/06/28
    50 BItmap size Resizing 시켜주기 GNCkorea 1 3111 12/08/10
    49 레알 Hello~Android 출력해볼까요? +8 레오쏭 9 3130 11/05/12
    48 [경고를해보자]토스트?!토스트란무엇인가(1) +1 레오쏭 4 3341 11/10/02
    47 [C언어]강좌1. C언어를 배우기위해 +1 퉁퉁이 5 3348 11/10/16
    46 Low memory killer / win death / Gallery 선택후 프로… GNCkorea 0 3367 12/08/07