본문 바로가기

Developer/Mobile

[Android강좌] Layout 정리

 

 

오늘은 레이아웃에 관련하여 작성을 해볼까 함..

이제 막 프로젝트를 시작했는데.. 레이아웃에서 막히는 어이없는 시츄...

새로 공부한다는 생각으로 글을 작성할까합니다..

 

또한 내용은 계속 추가될 예정입니다.

 

<Layout 개념정리>

- android.widget 패키지가 제공하는 위젯

- 위젯의 View의 일종이지만 스스로 화면에 뭔가를 그리지 않음

- 위젯들을 담은 컨테이너

 

 

<Layout 공통 속성>

- android: id / 아이디값 적용

 

- android:orientation / 레이아웃의 배치 방법

1) vertical = 수직

2) horizontal = 수평

 

- android:layout_width / 레이아웃의 가로 사이즈

1) fill_parent = 여유공간의 전체를 채움

2) wrap_content = 뷰에 작성된 내용의 영역만큼만 채움

3) match_parent =

4) 실수형 = 실수 + 단위 로 지정할 수 있음

 

- android:layout_height / 레이아웃의 세로 사이즈

1) fill_parent = 여유공간의 전체를 채움

2) wrap_content = 뷰에 작성된 내용의 영역만큼만 채움

3) match_parent =

4) 실수형 = 실수 + 단위 로 지정할 수 있음

 

- android:background / 레이아웃의 배경을 지정함

 

- android:gravity / 레이아웃의 정렬

 

- android:layout_margin / 레이아웃의 상화좌우 여백

1) android_marginTop : 위쪽

2) android_marginBottom : 아래쪽

3) android_marginLeft : 왼쪽

4) android_marginRight : 오른쪽

 

 

<LinearLayout>

- android.widget.LinearLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음

- Linear 란 선이라는 의미를 가지고 있으며 LinearLayout 이란 선들의 레이아웃이다

- 행인지 열인지는 orientation 특성이 결정

- 속성들

1) android:orientation : 자식뷰들을 하나의 행으로 표시할 것인지 하나의 열로 표시할 것인지를 결정

2) android:gravity : 부모안에서 자식뷰의 중력

가) '|'를 사용할 수 있음

나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill

3) android:layout_gravity : 특정 자식 뷰의 중력

가) '|'를 사용할 수 있음

나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill

 

<RelativeLayout>

- android.widget.RelativeLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음

- 자식 뷰들의 상대적인 관계에 따라 배치

- 여러개의 레이아웃 그룹들을 사용하지 않고도 흥미로운 사용자 인테페이를 구축할 수 있음

- 속성

01) android:gravity : 부모안에서 자식뷰의 정렬

가) '|'를 사용할 수 있음

나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill

02) android:layout_centerInParent : 뷰를 부모의 수직, 수평 중앙에 배치할 것인지의 여부

03) android:layout_centerHorizontal : 뷰를 부모의 수평 중앙에 배치 할 것인지의 여부

04) android:layout_centerVetical : 뷰를 부모의 수직 중앙에 배치 할 것인지의 여부

05) android:layout_alignParentTop : 뷰를 부모의 상단 가장자리에 붙일 것인지의 여부

06) android:layout_alignParentBottom : 뷰를 부모의 하단 가장자리에 붙일 것인지의 여부

07) android:layout_alignParentLeft : 뷰를 부모의 왼쪽 가장자리에 붙일 것인지의 여부

08) android:layout_alignParentRight : 뷰를 부모의 오른쪽 가장자리에 붙일 것인지의 여부

09) android:layout_alignRight : 뷰를 대상 뷰(ID로 지정된)의  오른쪽 가장자리에 붙임

10) android:layout_alignLeft : 뷰를 대상 뷰(ID로 지정된)의  왼쪽 가장자리에 붙임

11) android:layout_alignTop : 뷰를 대상 뷰(ID로 지정된)의  위쪽 가장자리에 붙임

12) android:layout_alignBottom : 뷰를 대상 뷰(ID로 지정된)의  아래쪽 가장자리에 붙임

13) android:layout_above : 뷰의 하단 가장자리를 대상 뷰(ID로 지정된)의 상단에

14) android:layout_below : 뷰의 상단 가장자리를 대상 뷰(ID로 지정된)의 하단에 붙임

15) android:layout_toLeftOf : 뷰의 오른쪽 가장자리를 대상 뷰(ID로 지정된)의 왼쪽에 붙임

16) android:layout_toRightOf : 뷰의 왼쪽 가장자리를 대상 뷰(ID로 지정된)의 오른쪽에 붙임

 

<FrameLayout>

- android.widget.FrameLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음

- 여러 자식 뷰들을 겹쳐서 사용하기에 용이

- 속성

1) android:foreground : 부모 뷰의 내용 위에 겹쳐 그릴 표시물 자원

2) android:foregroundGravity : 부모 뷰의 전경 표시물의 중력(정렬방식)

3) android:measureAllChildren : 레이아웃의 크기를 모든 자식을 고려해서 결정할 것인지 아니면 Visible

   로 설정된 자식들만 고혀할 것인지의 여부 

4) android:layout_graviry :  부모안에서 자식 뷰의 중력(정렬방식)

가) '|'를 사용할 수 있음

나) top, bottom, left, right, center_vertical, center_horizontal, fill_horizontal, center, fill

 

<TableLayout>

- android.widget.TableLayout.LayoutParams 클래스에서 속성을 알아볼 수 있음

- 자식 뷰들을 열과 행으로 조직화된 표 형태로 배치

      - 속성

1) android:collapseColumns : 숨길 열들의 번호들을 쉼표로 분리해서 나열한 것이다.

2) android:shrinkColumns : 줄일 수 있는 열들의 번호들을 쉼표로 분리해서 나열한것이다.

3) android:stretchColumns : 늘릴 수 있는 열들의 번호들을 쉼표로 분리해서 나열한 것

4) android:layout_column :  이 뷰가 표시될 열번호

5) android:layout_span :  이뷰가 차지할 열들의 개수(1이상)

 

<AbsoluteLayout>

- android.widget.Absolute.LayoutParams 클래스에서 속성을 알아볼 수 있음

- 자식 뷰들의 x, y 좌표를 정확하게 지정하고자할 때 쓰인다.

- 화면 전체에 사용하기보다는 특정한 영역을 픽셀 수준에서 세밀하게 제어하는게 용이

- 속성

1) android:layout_x : 자식 뷰의 x좌표

2) android:layout_y : 자식 뷰의 y좌표

 

 

일단 저도 개념 정리한다고 적기는 미친듯이 적었는데..

오타가 있을지도 모르겠네요..^^;;

아 저도 일단 레이아웃가지고 간편한 레이아웃 작성좀 해봐야겠어요!