프로그래밍 언어/Java

[Android java] Switch 버튼 구현 및 custom 하기

happy_life 2021. 11. 25. 11:55

Switch 버튼 구현 및 custom 하기

 

Switch 버튼 구현

XML 에 Switch 코드를 다음과 같이 적용 해주면 됩니다.

 

실제 구현 모습

off
on

 

하지만 여러모로 다양한 형식으로 custom하고 싶은 분들도 많으실 텐데요

어떻게 하면 custom을 할 수 있는지 코드를 통해 알아보겠습니다.

 

 

 

custom하는 방법

Switch Track 설정

 

 

 

1)drawable에 selector 형식의 xml을 만들어줍니다.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/switch_track_off"
        android:state_checked="false"/>

    <item
        android:drawable="@drawable/switch_track_on"
        android:state_checked="true"/>
</selector>

 

 

 

 

2)switch_track_on.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners
        android:radius="15dp" />

    <size
        android:width="50dp"
        android:height="30dp" />

    <solid
        android:color="@color/color1" />

</shape>

 

 

 

 

3)switch_track_off.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners
        android:radius="15dp" />

    <size
        android:width="50dp"
        android:height="30dp" />

    <solid
        android:color="#A8A8A8" />

</shape>

 

 

 

 

4)switch_thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <size
        android:width="30dp"
        android:height="25dp" />

    <solid
        android:color="#FFFFFF" />

    <stroke
        android:width="1dp"
        android:color="#FFFFFF" />
</shape>

 

 

 

이후 수정을 원하는 Switch xml 로 가서 코드를 적용해주시면 됩니다.