반응형
RelativeLayout 상대위치 속성 4가지
RelativeLayout의 경우 화면에 배치된 뷰를 기준으로 뷰 자신의 위치를 지정하는 레이아웃이다. 기본적으로 RelativeLayout은 orientation을 지정할 수 없기 때문에 속성을 지정하지 않으면 문제가 된다.
상대 위치를 지정하는 속성 4가지.
android:layout_above : 기준 뷰의 윗부분에 자신을 위치시킴
android:layout_below : 기준 뷰의 아래부분에 자신을 위치시킴
android:layout_toLeftOf: 기준 뷰의 왼쪽에 배치
android:layout_toRightOf: 기준 뷰의 오른쪽에 배치
4가지 속성값의 기준 뷰의 id를 참조한다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/icon"
android:adjustViewBounds="true"
android:src="@drawable/img_profile_emotion_03_n"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_toRightOf="@id/icon"
android:text="홍길동"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/content"
android:layout_below="@id/name"
android:layout_toRightOf="@id/icon"
android:text="안녕하세요 잘 지내시는거죠?"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/date"
android:layout_toRightOf="@id/name"
android:text="18.09.06"/>
</RelativeLayout>
또다른 속성 중에 중요한 속성은 align 속성이다.
각각의 뷰들이 서로간에 간격과 높이, 여백등을 조절하기 위해서는 다음 5가지 align속성을 알고 있어야 한다.
android:layout_alignTop: 기준 뷰와 윗부분을 정렬
android:layout_alignBottom: 기준 뷰와 아랫부분을 정렬
android:layout_alignLeft: 기준 뷰와 왼쪽을 정렬
android:layout_alignRight: 기준 뷰와 오른쪽을 정렬
android:layout_alignBaseline: 기준 뷰와 텍스트 기준선을 정렬
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/icon"
android:adjustViewBounds="true"
android:src="@drawable/img_profile_emotion_03_n"
android:layout_margin="5dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_toRightOf="@id/icon"
android:text="홍길동"
android:layout_margin="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/content"
android:layout_below="@id/name"
android:layout_alignLeft="@id/name"
android:text="안녕하세요 잘 지내시는거죠?"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/date"
android:layout_toRightOf="@id/name"
android:layout_alignBaseline="@id/name"
android:text="18.09.06"/>
</RelativeLayout>
마지막으로 부모뷰로부터 자신의 뷰를 정렬하기 위한 속성이다.
RelativeLayout으로 뷰를 배치할 때 특정 뷰를 RelativeLayout영역의 상하좌우로 밀 수 있는 속성이 alignParentXXX 패턴을 가지는 속성들이다.
android:layout_alignParentTop: 부모의 윗부분에 뷰의 상단을 위치
android:layout_alignParentBottom: 부모의 아랫부분에 뷰의 하단을 위치
android:layout_alignParentLeft: 부모의 왼쪽에 뷰의 왼쪽을 위치
android:layout_alignParentRight: 부모의 오른쪽에 뷰의 오른쪽을 위치
android:layout_alignParentLeft: 부모의 왼쪽에 뷰의 왼쪽을 위치
android:layout_alignParentRight: 부모의 오른쪽에 뷰의 오른쪽을 위치
android:layout_centerHorizontal: 부모의 가로 방향 중앙에 뷰를 위치
android:layout_centerVertical: 부모의 세로 방향 중앙에 뷰를 위치
android:layout_centerInParent: 부모의 가로세로 중앙에 뷰를 위치
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/date"
android:layout_alignParentRight="true"
android:padding="5dp"
android:text="18.09.06"/>
반응형
'프로그래밍 > Android' 카테고리의 다른 글
Android WebView Session 제거 (0) | 2018.09.18 |
---|---|
Android Splash(Intro) Activity추가하기 (1) | 2018.09.18 |
안드로이드 폰 개발자 옵션 및 USB 디버깅 설정(갤럭시 노트2) (0) | 2018.09.06 |
Android 배포를 위한 APK 생성 절차 (0) | 2018.09.05 |
안드로이드 버전 목록, 이건 기본 ^^ (0) | 2018.09.04 |