• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
인터페이스?!-레이아웃
연속출석 :
1일 랭킹 : 6,397위 상사3
90%
90% (434 /480)
  • 댓글 1 |
  • 추천 4 |
  • 조회 2656 |
  • 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 젤리빈 로그캣 변경점 GNCkorea 1 4248 12/08/10
    44 안드로이드 기초 프로그램 1개 실습 및 작성 방법의 설명 GNCkorea 1 4237 12/08/10
    43 어플개발을 위한 무기들을 준비해보자!-2.SDK +21 레오쏭 20 4009 11/05/04
    42 어플개발을 위한 무기들을 준비해보자!-3.에뮬레이터 +21 레오쏭 14 3920 11/05/04
    41 Bitmap 파일 회전시키기 GNCkorea 1 3912 12/08/10
    40 안드로이드 강좌 2 - 이클립스 개발환경 사용법 및 프로… GNCkorea 1 3898 12/08/09
    39 액티비티?!-1.버튼,액티비티추가하기 +8 레오쏭 7 3766 11/05/22
    38 개인이 앱 판매할 때, 준비해야 할 것들 (사업자 등록 … GNCkorea 1 3743 12/08/10
    37 launcherShortCut (바로가기 아이콘)입니다. GNCkorea 1 3696 12/08/10
    36 안드로이드 프로그래밍 Tip +3 지워니 4 3657 12/01/27
    35 버튼?!-라디오,체크,토글버튼 레오쏭 4 3621 11/08/10
    34 삼성 AdHub SDK 심각한 버그 있네요. GNCkorea 1 3613 12/08/10
    33 윈도우즈 개발환경 구성 - Eclipse 3.6.1 (Helios), ADT… GNCkorea 1 3558 12/08/09
    32 안드로이드 강좌 3 - 프로젝트 실행과 디버깅 그리고 단… GNCkorea 0 3495 12/08/09
    31 윈도우 사용자명 한글일때 에뮬레이터 오류 해결 방법 +3 레오쏭 3 3412 11/09/26
    30 안드로이드 강좌 1 - 어플리케이션 개발 시작하기. SDK … GNCkorea 1 3373 12/08/09
    29 Hello~Android 출력해볼까요? +13 레오쏭 9 3362 11/05/08
    28 Low memory killer / win death / Gallery 선택후 프로… GNCkorea 0 3352 12/08/07
    27 [C언어]강좌1. C언어를 배우기위해 +1 퉁퉁이 5 3334 11/10/16
    26 [경고를해보자]토스트?!토스트란무엇인가(1) +1 레오쏭 4 3312 11/10/02
    25 레알 Hello~Android 출력해볼까요? +8 레오쏭 9 3125 11/05/12
    24 BItmap size Resizing 시켜주기 GNCkorea 1 3104 12/08/10
    23 권한?!-4.너에게 권한을 주마! +15 레오쏭 6 3042 11/06/28
    22 윈도우8과 함께 등장한 윈도우 스토어, 자유와 통제의 … GNCkorea 0 3022 12/08/10
    21 자바강좌 1-1 (자바의 데이터 타입과 연산자) +2 ★CsJ★ 2 2974 12/02/26
    20 안녕하세요?뉴페이스 레오입니다~^^ +14 레오쏭 10 2962 11/05/03
    19 안드로이드 강좌 6 - Java 코드(Code)에서 뷰(View) 다… GNCkorea 0 2891 12/08/09
    18 슬라이딩 도어를 만들어 볼까요? +3 레오쏭 3 2801 11/10/02