Android

[Android] 안드로이드 커스텀 버튼 만들기.

onemask 2019. 5. 23. 01:46

안드로이드에서 기본적으로 제공하는 버튼은 이쁘지 않다. 

화면에 맞게 다양한 버튼을 만들어 주고 싶다면 버튼을 커스텀할 줄 알아야 한다.

오늘은 그 방법에 대하여 정리해보겠다.

 

안드로이드 XML에서 버튼을 추가해주면 기본적으로 이러한 모양이다. 

 

나의 Needs! 

" 나는 동그랗고  바깥 테두리가 완만한 버튼을 원한다. "

 

 

 

 


그럴 때는 이렇게 하면 된다. 

Step1

  • drawable > 우클릭 > Drawable Rsource file 추가.



고대로 넣고 내가 알아보기 쉬운 이름을 짓는다. 

여기서 주의해야 할 점은 xml파일의 underbar ( _ ) 말고 그냥 bar(-)가 들어가면 
해당 파일을 찾지 못하니 주의해야 한다.

 

Step2

  • 아래와 xml 코드를 넣어준다. 
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">

    <stroke
            android:width="1dp"
            android:color="@color/black" />
    <size
            android:width="36dp"
            android:height="50dp" />
    <corners android:radius="10dp" />
</shape>


> TMI

  • stroke
    겉 테두리라고 생각하면 된다.
    width는 dp가 증가될수록 테두리가 두껍다라고 생각하면 된다.
    color는 아시다시피 테두리의 색 
  • size
    size는 버튼의 크기를 fragment나 activity xml로 지정하지 않고
    해당 파일 안에 선언해 놓을 수 있다.
    같은 크기의 button을 많이 사용해야 한다면 이 방법으로 코드량을 줄일 수 있을 것이다. 
  • corners
    corners는 완만한 정도다. coreners가 높을수록 버튼은 동그랗게 만들어진다. 

Step3

  • button : background="@drawable/(내가 만든 custom xml 이름)"

이제 만들어진 drawable resource xml을 사용하려면 적용하고자 하는 button에 background로 이렇께 사용해주면 된다. 

<Button
            android:text="Button"
            android:background="@drawable/rounded_rectangle_solid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

 

그러면 아래와 같이 버튼이 만들어진다. 

LIST