본문 바로가기

DEVELOPMENT/ANDROID

[android] AbsoluteLayout

AbsoluteLayout은 의미상으로 RelativeLayout의 반대 속성을 가지는 레이아웃이다.


관계나 순서에 상관없이 지정한 절대 좌표에 차일드 뷰를 배치한다.

차일드 뷰의 좌표를 layout_x, layout_y의 속성으로 지정하면 부모의 좌측 상단을 기준으로 한 좌표에 뷰가 배치된다.


다음 예제를 보자.


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.    android:layout_width="match_parent"
  4.    android:layout_height="match_parent"
  5.    >
  6.  
  7.     <TextView
  8.        android:id="@+id/textView1"
  9.        android:layout_width="wrap_content"
  10.        android:layout_height="wrap_content"
  11.        android:layout_x="75dp"
  12.        android:layout_y="94dp"
  13.        android:text="75dp, 94dp"
  14.        android:textAppearance="?android:attr/textAppearanceLarge" />
  15.  
  16.     <TextView
  17.        android:id="@+id/textView2"
  18.        android:layout_width="wrap_content"
  19.        android:layout_height="wrap_content"
  20.        android:layout_x="37dp"
  21.        android:layout_y="173dp"
  22.        android:text="37dp, 173dp"
  23.        android:textAppearance="?android:attr/textAppearanceLarge" />
  24.  
  25.     <TextView
  26.        android:id="@+id/textView3"
  27.        android:layout_width="wrap_content"
  28.        android:layout_height="wrap_content"
  29.        android:layout_x="157dp"
  30.        android:layout_y="82dp"
  31.        android:text="157dp, 82dp"
  32.        android:textAppearance="?android:attr/textAppearanceLarge" />
  33.  
  34.     <TextView
  35.        android:id="@+id/textView4"
  36.        android:layout_width="wrap_content"
  37.        android:layout_height="wrap_content"
  38.        android:layout_x="212dp"
  39.        android:layout_y="431dp"
  40.        android:text="212dp, 431dp"
  41.        android:textAppearance="?android:attr/textAppearanceMedium" />
  42.    
  43. </AbsoluteLayout>



텍스트 뷰의 값은 layout_x, layout_y의 값이다.


특별한 제약없이 임의의 위치에 뷰를 배치할 수 있어 자유도가 높은편이다.


그러나 안드로이드 기기의 해상도가 천차만별이라 유연하지 못하고 관리하기도 어렵다.

해상도가 달라지면 화면배치의 좌표도 달라지기 때문에 관리하기가 매우 어렵다.


그래서 공식 문서에는 AbsoluteLayout을 아예 사용하지 말라고 되어 있다.



'DEVELOPMENT > ANDROID' 카테고리의 다른 글

[android] 이벤트처리 - onTouchEvent  (0) 2014.03.12
[android] FrameLayout  (0) 2014.03.12
[android] RelativeLayout (상대 레이아웃)  (0) 2014.03.12
[android] LinearLayout  (0) 2014.03.12
[android] 그래픽 레이아웃 문제  (1) 2014.03.09