쭌2 블로그

[안드로이드/Android] Button의 기본 Padding 제거하기 본문

IT/Android

[안드로이드/Android] Button의 기본 Padding 제거하기

realjune 2018. 9. 12. 20:37


안드로이드 Button에는 기본으로 Padding이 잡혀있습니다.


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />


그래서 Button에 따로 layout_width, layout_height 속성을 정해주지 않으면,



이렇게 기본 Padding이 적용되어 크기가 잡히는데요.


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="@color/blue_dark" />
<stroke android:width="0dp" android:color="@color/blue_dark" />
<padding android:bottom="@dimen/padding_8"
android:left="@dimen/padding_23"
android:right="@dimen/padding_23"
android:top="@dimen/padding_8" />
<corners android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp" />

</shape>
</item>

<item android:state_pressed="false">
<shape>
<solid android:color="@color/blue_dark" />
<stroke android:width="0dp" android:color="@color/blue_dark" />
<padding android:bottom="@dimen/padding_8"
android:left="@dimen/padding_23"
android:right="@dimen/padding_23"
android:top="@dimen/padding_8" />
<corners android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp" />
</shape>
</item>
</selector>


이럴경우 위와 같이 Button Selector를 만들어 Padding 값을 설정해주고 Button에 background를 먹여도 기본 Button의 Padding이 제거되지 않아 Selector의 Padding이 적용되지 않습니다.



이때는 아래와 같이 Button에 minWidth, minHeight 속성을 0dp로 설정해주면 간단하게 Button의 기본 Padding을 제거할 수 있습니다.


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_blue_dark_onoff"
android:minHeight="0dp"
android:minWidth="0dp"
android:text="Button" />



Button의 기본 Padding이 제거되고 위의 Selector에서 설정한 Padding이 적용된 것이 보이시죠? 이처럼 Button의 minWidth, minHeight 속성을 이용하면 간단하게 Button의 Padding 값을 제거할 수 있습니다.


Comments