안드로이드 기본 버튼 색을 바꿀수있나요?


안드로이드 기본 버튼 색을 바꾸고싶습니다. 그래서 찾아보다가

    <?xml version="1.0" encoding="utf-8"?>    
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@drawable/red_button_pressed" />
        <item android:state_focused="true" android:drawable="@drawable/red_button_focus" />
        <item android:drawable="@drawable/red_button_rest" />
    </selector>

셀렉터를 만들어서 버튼이 눌렸을때 포커스가 갔을때 버튼을 안만졌을때 마다 버튼 이미지를 바꿔주는 방법을 찾았습니다. 근데 이건 너무 번거롭고 이미지파일도 세개나 필요하고 그래서 저는 그냥 버튼의 색만 바꾸고 싶은데 가능할까요?

  • 2016년 01월 05일에 작성됨

조회수 736


1 답변


좋아요
0
싫어요
채택취소하기

좀 쉬운 방법을 생각해봤는데 아래 코드를 응용해보세요. 파일이름은 custom_button.xml이고 버튼은 background="@drawable/custom_button이에요.

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

        <item android:state_pressed="true" >
            <shape>
                <gradient
                    android:startColor="@color/yellow1"
                    android:endColor="@color/yellow2"
                    android:angle="270" />
                <stroke
                    android:width="3dp"
                    android:color="@color/grey05" />
                <corners
                    android:radius="3dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>

        <item android:state_focused="true" >
            <shape>
                <gradient
                    android:endColor="@color/orange4"
                    android:startColor="@color/orange5"
                    android:angle="270" />
                <stroke
                    android:width="3dp"
                    android:color="@color/grey05" />
                <corners
                    android:radius="3dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>

        <item>        
            <shape>
                <gradient
                    android:endColor="@color/blue2"
                    android:startColor="@color/blue25"
                    android:angle="270" />
                <stroke
                    android:width="3dp"
                    android:color="@color/grey05" />
                <corners
                    android:radius="3dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>
    </selector>

똑같이 셀렉터를 쓰는데 위에 색을 입혀주는 방식이에요

  • 2016년 01월 05일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close