[Android] 07. 뷰를 배치하는 레이아웃

 뷰를 배치하는 레이아웃

뷰를 배치하는 레이아웃

목차

  • 07-1 선형으로 배치 - LinearLayout
  • 07-2 상대 위치로 배치 - RelativeLayout
  • 07-3 겹쳐서 배치 - FrameLayout
  • 07-4 표 형태로 배치 - GridLayout
  • 07-5 계층 구조로 배치 - ConstraintLayout
  • 07-6 전화 앱의 키패드 화면 만들기


07-1 선형으로 배치 - LinearLayout

LinearLayout 배치 규칙

LinearLayout

  • LinearLayout은 뷰를 가로나 세로 방향으로 나열하는 레이아웃이다.
  • orientation 속성에 horizontal이나 vertical값으로 방향을 지정한다.


LinearLayout 예시
LinearLayout 예시

LinearLayout 예시
  • LinearLayout을 중첩할 수 있다.
  • 레이아웃 클래스도 뷰이므로 다른 레이아웃 클래스에 포함할 수 있다.


여백을 채우는 layout_weight 속성

  • 뷰 1개로 전체 여백 채우기
    • 여백을 뷰로 채우려면 layout_weight 속성을 사용한다.


  • 뷰 여러 개로 여백을 나누어 채우기
    • layout_weight 속성에 지정한 숫자는 가중치
    • layout_weight 값을 각각 1과 3으로 선언했다면 가로 여백을 각각 1/4만큼, 3/4만큼 나우어 차지



  • 중첩된 레이아웃에서 여백 채우기


  • 여백 채우기로 뷰의 크기 설정하기


뷰를 정렬하는 gravity, layout_gravity 속성

  • 뷰에 gravity와 layout_gravity 속성 적용하기
    • gravity속성의 정렬 대상은 콘텐츠
    • layout_gravity는 뷰 자체를 정렬하는 속성


  • 레이아웃 gravity 속성 적용하기



07-2 상대 위치로 배치 - RelativeLayout

RelativeLayout 배치 규칙

  • 상대 뷰의 위치를 기준으로 정렬하는 레이아웃
    • android:layout_above: 기준 뷰의 위쪽에 배치
    • android:layout_below: 기준 뷴의 아래쪽에 배치
    • android:layout_toLeftOf: 기준 뷰의 왼쪽에 배치
    • android:layout_toRightOf: 기준 뷰의 오른쪽에 배치


맞춤 정렬하는 align 속성

  • 상대 뷰의 어느 쪽에 맞춰서 정렬할지를 정하는 속성
    • android:layout_alignTop: 기준 뷰와 위쪽을 맞춤
    • android:layout_alginBottom: 기준 뷰와 아래쪽을 맞춤
    • android:layout_alignLeft: 기준 뷰와 왼쪽을 맞춤
    • android:layout_alignRight: 기준 뷰와 오른쪽을 맞춤
    • android:layout_alginBaseLine: 기준 뷰와 텍스트 기준선을 맞춤


  • 상위 레이아웃을 기준으로 맞춤 정렬하는 속성
    • android:layout_alignParentTop: 부모의 위쪽에 맞춤
    • android:layout_alignParentBottom: 부모의 아래쪽에 맞춤
    • android:layout_alignParentLeft: 부모의 왼쪽에 맞춤
    • android:layout_alignParentRight: 부모의 오른쪽에 맞춤
    • android:layout_centerHorizonotal: 부모의 가로 방향 중앙에 맞춤
    • android:layout_centerVertical: 부모의 세로 방향 중앙에 맞춤
    • android:layout_centerInParent: 부모의 가로/세로 중앙에 맞춤



07-3 겹쳐서 배치 - FrameLayout

  • 카드를 쌓듯이 뷰를 추가한 순서대로 위에 겹쳐서 계속 출력하는 레이아웃이다.
  • 대부분 뷰의 표시 여부를 설정하는 visibility 속성을 함께 사용한다.


  • visibility 속성값을 바꾸는 액티비티 코드의 예입니다.



07-4 표 형태로 배치 - GridLayout

GridLayout 배치 규칙

  • 테이블 화면을 만드는 레이아웃이다.
  • orientation 속성으로 가로나 세로 방향으로 뷰를 나열한다.
  • 줄바꿈을 자동으로 해준다.
    • orientation: 방향 설정
    • rowCount: 세로로 나열할 뷰 개수
    • columnCount: 가로로 나열할 뷰 개수


  • 행 개수 지정하는 예이다.


GridLayout 속성

  • 특정 뷰의 위치 조정하기
    • layout_row: 뷰가 위치하는 세로 방향 인덱스
    • layout_column: 뷰가 위치하는 가로 방향 인덱스


  • 특정 뷰의 크기 확장하기
    • layout_gravity 속성을 이용한다.


  • 한 칸에 뷰를 여러개 표시


  • 열이나 행 병합하기
    • layout_columnSpan: 가로로 열 병합
    • layout_rowrSpan: 세로로 행 병합



07-5 계층 구조로 배치 - ConstraintLayout

  • androidx에서 제공하는 라이브러리


레이아웃 편집기에서 레이아웃 구성하기

  • 상대 위치로 배치하는 RelativeLayout과 비슷하지만 더 많은 속성을 제공한다.
  • 레이아웃 편집기를 제공한다.

  1. 팔레트(Palette)
  2. 컴포넌트 트리(Component Tree)
  3. 툴바(Toolbar)
  4. 디자인 편집기(Design editor)
  5. 속성(Attributes)
  6. 보기 모드(View mode)
  7. 화면 조절(Zoom and pan control)





  • 이미지 추가 예시이다.






  • 제목 추가 예시이다.



  • 메시지 추가 예시이다.



07-6 전화 앱의 키패드 화면 만들기

1단계: 새로운 모듈 생성하기

  • Ch7_Layout이라는 이름으로 새로운 모듈을 만든다.


2단계: 실습 파일 복사하기

  • add.png, back.png, call.png, video.png 파일을 res/drawable 디렉터리에 복사한다.


3단계: 메인 액티비티 작성하기

  • activity_main.xml 파일 작성한다.


4단계: 앱 실행하기






댓글

이 블로그의 인기 게시물

[컴퓨터] Office 무료 설치

[컴퓨터] iptime 관리자계정 찾기 및 설정

[컴퓨터] 윈도우11 디펜더 끄기