frontend/mobile

[android / xml] 안드로이드 홈스크린위젯 꾸미기 - 속성사용하기

김포레스트 2023. 10. 27. 08:07

android xml에는 뷰에 사용할 수 있는 다양한 속성이 있다.

 

1. 높이 너비

// 뷰의 높이 및 너비

android:layout_width="200dp"  // 객체의 width를 200dp로 설정
android:layout_height="100dp" // 객체의 height를 100dp로 설정

android:layout_width="match_parent"  // 객체의 width를 부모의 크기만큼 설정
android:layout_height="match_parent" // 객체의 height를 부모의 크기만큼 설정

android:layout_width="wrap_content"  // 객체의 width를 컨텐츠의 크기만큼 설정
android:layout_height="wrap_content" // 객체의 height를 컨텐츠의 크기만큼 설정

 

 

2. 패딩과 마진

// 패딩

android:paddingTop="30dp"
android:paddingBottom="30dp"
android:paddingRight="30dp"
android:paddingLeft="30dp"

android:padding="30dp"


// 마진
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp"
android:layout_marginRight="30dp"
android:layout_marginLeft="30dp"

 

3. gravity, layout_gravity

gravity는 중력(?)이라는 개념을 이용해서 뷰를 정렬하는 개념인데, layout_gravity와 다소 차이가 있다.

gravity는 이 속성을 사용한 뷰의 자식 뷰를 정렬하고 싶을 때 사용하고,

layout_gravity는 이 속성을 사용한 뷰 자체를 정렬하고 싶을 때 사용한다.

 

자식을 정렬하고 싶으면 gravity, 나 자신을 정렬하고 싶으면 layout_gravity를 사용한다.

 

android:gravity="start"	// 왼쪽부터 정렬
android:gravity="end"	//오른쪽부터 정렬
android:gravity="top"	//위에서 부터 정렬
android:gravity="bottom"	//아래에서 부터 정렬
android:gravity="center"	// 중앙정렬
android:gravity="center_vertical"	//세로축 기준 중앙정렬
android:gravity="center_horizontal"	/가로축 기준 중앙정렬

// 혼합하고 싶을 때
android:gravity="end|center_vertical"	//오른쪽 정렬 + 세로축 기준 중앙정렬(세시방향)

속성값은 gravity와 layout_gravity가 동일

 

gravity 속성이 잘 안들을 때에는 width나 height 가 wrap_content로 되어있는지 확인하자.

android:layout_width="fill_parent"
android:layout_height="fill_parent"

기준이 잡히지않아서 생기는 문제이기 때문에 gravity 속성을 적용하려는 뷰의 속성을 fill_parent로 고쳐준다.

 

또 부모 뷰가 LinearLayout 인데 정렬 속성이 horizon 이면 

자식 뷰의 layout_ gravity 는 left나 right는 적용 불가하다. 

반대로 LinearLayout 의 정렬 속성이 vertical 이면 

자식뷰의 layout_gravity 는 top, bottom 적용이 불가하다.

 

참고 블로그는 다음과 같음 

 

https://mainia.tistory.com/entry/Android-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EB%A0%88%EC%9D%B4%EC%95%84%EC%9B%83-gravity-layoutgravity-%EA%B0%80-%EC%A0%81%EC%9A%A9%EC%9D%B4-%EC%95%88%EB%90%98%EB%8A%94-%EA%B2%BD%EC%9A%B0-%ED%95%B4%EA%B2%B0

 

[Android] 안드로이드 레이아웃 gravity, layout_gravity 가 적용이 안되는 경우 해결

[Android] 안드로이드 레이아웃 gravity, layout_gravity 가 적용이 안되는 경우 해결 환경 : Eclipse Mars, Android 4.2.2 안드로이드에서 화면에 위젯들을 배치할 때 gravity 와 layout_gravity 을 많이 사용 합니다. 그

mainia.tistory.com