안드로이드 기본 버튼 색을 바꿀수있나요?
조회수 8829회
안드로이드 기본 버튼 색을 바꾸고싶습니다. 그래서 찾아보다가
<?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>
셀렉터를 만들어서 버튼이 눌렸을때 포커스가 갔을때 버튼을 안만졌을때 마다 버튼 이미지를 바꿔주는 방법을 찾았습니다. 근데 이건 너무 번거롭고 이미지파일도 세개나 필요하고 그래서 저는 그냥 버튼의 색만 바꾸고 싶은데 가능할까요?
1 답변
-
좀 쉬운 방법을 생각해봤는데 아래 코드를 응용해보세요. 파일이름은 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>
똑같이 셀렉터를 쓰는데 위에 색을 입혀주는 방식이에요
댓글 입력