안드로이드 레이아웃

프로그래밍/Android 2013. 8. 25. 22:46

안드로이드 레이아웃 


일반적인 레이아웃 오프젝트


FrameLayout

- 가장 간단한 레이아웃, 스크린 상의 빈 공간이다.


LinearLayout

- 모든 자식들을 하나의 방향으로 정렬한다.

- 모든 자식들은 순차적으로 쌓여진다.


weight 가중치?

- 3개의 텍스트 박스중 1,2번째 텍스트 박스는 가중치가 1이고 3번째 텍스트 박스는 가중치가 0라면

=> 세번째 텍스트 박스는 크기에 변화가 없고 첫번째, 두번째 텍스트 박스만 남은 공간의 절반씩을 점유한다.

- 3번째 텍스트 박스가 가중치가 2라면

=> 3번째 텍스트 박스는 전체공간의 절반(2/4)을 차지하게 된다.


가중치를 활용하면 스크린 변화에 따라 동적으로 변경되는 레이아웃을 설정할 수 있다.


TableLayout

<TableLayout

xmlns:android="http://schemes.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:stretchColumns="1">

<TableRow>

<TextView android:text="@string/table_layout_4_open"

android:padding="3dip"/>

<TextView android:text="@string/table_layout_4_open_shortcut"

android:gravity="right"

android:padding="3dip" />

</TableRow>

<TableRow>

<TextView android:text="@string/table_layout_4_save"

android:padding="3dip"/>

<TextView android:text="@string/table_layout_4_save_shortcut"

android:gravity="right"

android:padding="3dip" />

</TableRow>

</TableLayout>



RelativeLayout

<RelativeLayout

xmlns:android="http://schemes.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="wrap_parent"

android:background="@drawable/blue"

android:padding="10px" >

<TextView android:id="@+id/label"

android:layout_width="fill_parent"

android:layout_height=wrap_content"

android:text="Type here:" />

<EditText android:id="@+id/entry"

android:layout_width="fill_parent"

android:layout_height=wrap_content"

android:layout_below="@id/label" />   <==== EditText 가 label 아래 위치한다는 것을 명시

<Button android:id="@+id/ok"

android:layout_width="wrap_content"

android:layout_height=wrap_content"

android:layout_below="@id/entry"          <==== Button 이 entry 아래 위치한다는 것을 명시

android:layout_alignParentRight="true"  <==== Button 이 오른쪽 정렬한다는 것을 명시

android:layout_marginLeft="10px"

android:text="OK" />

<Button android:id="@+id/candel"

android:layout_width="wrap_content"

android:layout_height=wrap_content"

android:layout_toLeftOf="@id/ok"       <==== Cancel Button 이 OK Button 의 좌측에 위치한다는 것을 명시

android:layout_alignTop="@id/ok"

android:text="Cancel" />

</RelativeLayout>


: