안드로이드에서는 5개의 레이아웃을 제공한다. 많이 사용하는 레이아웃은 LinearLayout, RelativeLayout, TableLayout 이고, FrameLayout과 AbsoluteLayout 은 사용 빈도가 낮다.
레이아웃은 계층적인 구조로 이루어져 있으므로 한 레이아웃 안에 다른 레이아웃을 포함하는 것이 가능하다. 예를 들어 LinearLayout 하위에 TableLayout을 사용할 수 있다.
▶ LinerLayout
: 프로젝트가 생성되면 기본으로 설정되는 레이아웃.
왼쪽 상단 X : 0, Y : 0 지점에서 시작되는데, 위에서 아래로, 왼쪽에서 오른쪽으로
직선 형태로 위젯들을 하나씩 배치한다.
▶ RelativeLayout
: 특정 객체의 위치를 기준으로 또는 다른 객체의 위치를 지정하는 레이아웃
▶ TableLayout
: 테이블형태로 위젯들을 배치하는 레이아웃
▶ FrameLayout
: 기본이 되는 레이아웃. 한번에 하나의 위젯만 출력할 수 있다.
보통 사용자인터페이스는 둘 이상의 위젯으로 구성되어 있기 때문에
단독으로는 잘 사용되지 않는 편이고, 여러 레이아웃과 조합해서 사용한다.
▶ AbsoluteLayout
: x,y 좌표를 지정하여 위젯을 배치할 수 있다. 그래서, 손쉽게 위젯을 배치할 수 있다는
장점이 있지만, 해상도사 변경되었을 때 레이아웃이 엉망이 될 수 있다는 단점 때문에
구글에서는 이 레이아웃을 사용하지 않을 것을 권고하고 있다.
RelativeLayout
: 특정 위젯을 기준으로 다른 위젯들을 배치하는 레이아웃 이다. 위치나 좌표의 개념이 없고 위젯 하나를 붙인 다음 그것을 기준으로 다른 위젯들을 하나씩 붙여나간다. 맨 처음 추가된 위젯을 제외한 나머지 위젯들은 기준이 되는 위젯이 있어야 하므로 RelativeLayout이 혼자서 단독으로 사용되는 경우보다 다른에이아웃과 혼합하여 다른 레이아웃을 보완하는 역할을 하는 경우가 많다. 위젯들이 절대위치를 지정할 수 없으므로 기준이 되는 위젯을 지정하지 않고 위젯을 추가하면 액티비티 윈도운의 왼쪽 모서리를 기준으로 위젯이 배치된다.
17개의 속성이 있으며, 각 속성과 속성의 기능은 아래와 같다.
▶android:layout_above: 기준위젯의 위쪽에 배치
▶android:layout_alignBaseline: 기준 뷰의 베이스라인을 위젯의 베이스라인으로 사용
▶android:layout_alignBottom: 위젯의 아래쪽명이 대상 위젯의 아래쪽 면과 수평정렬 되도록 배치
▶android:layout_alignLeft: 위젯의 왼쪽면이 대상 위젯의 왼쪽 면과 수직정렬 되도록 배치
▶android:layout_alignParentBottom: 위젯을 부모의 하단 가장자리에 붙일지 여부
▶android:layout_alignParentLeft: 위젯을 부모의 왼쪽 가장자리에 붙일지 여부
▶android:layout_alignParentRight: 위젯을 부모의 오른쪽 가장자리에 붙일지 여부
▶android:layout_alignParentTop: 위젯을 부모의 상단 가장자리에 붙일지 여부
▶android:layout_alignRight: 위젯의 오른쪽 면이 기준 위젯의 오른면과 수직정렬되도록 배치
▶android:layout_alignTop: 위젯의 위쪽 면을 기준 위젯의 위쪽 면과 수평 정렬되도록 배치
▶android:layout_below: 기준 위젯의 아래쪽에 배치
▶android:layout_centerHorizontal: 기준 위젝의 수평중앙에 배치
▶android:layout_centerInParent: 기준 위젯의 수직/수평 중앙에 배치
▶android:layout_centerVertical: 기준 위젯의 수직 중앙에 배치
▶android:layout_toLeftOf: 기준 위젯의 왼쪽에 배치
▶android:layout_toRightOf: 기준 위젯의 오른쪽에 배치
Posted by 홍반장