2011-10-13 1 views
5

버튼에 대한 Android 상태 목록을 관리하는 데 문제가 있습니다. 다른 상태에 대해 일부 도우미 가능한 항목을 지정했지만 현재 상태에 따라 textColor도 변경해야합니다.안드로이드 - 어떻게 결합 도형과 텍스트 색상 버튼에 대한 다른 상태?

내 실제 상태 목록 XML은 다음과 같습니다

<?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/white" 
       android:endColor="@color/light_gray" 
       android:angle="270" /> 
      <stroke 
       android:width="3dp" 
       android:color="@color/classic_red1" /> 
      <corners 
       android:radius="3dp" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
     </shape> 
    </item> 

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

내가이이 상태에 따라 텍스트 색상을 변경하는 것이 필요합니다. 미리 감사드립니다. 버튼 BG에 대한

답변

24

선택 : 버튼 텍스트 색상

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true"> 
    <shape> 
     <gradient 
      android:startColor="@color/white" 
      android:endColor="@color/light_gray" 
      android:angle="270" /> 
     <stroke 
      android:width="3dp" 
      android:color="@color/classic_red1" /> 
     <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> 
     <solid android:color="#424242" /> //another custom shape here for focus state 
    </shape> 
</item> 

<item> 
    <shape> 
     <gradient 
      android:startColor="@color/classic_red1" 
      android:endColor="@color/classic_red2" 
      android:angle="270" /> 
     <stroke 
      android:width="2dp" 
      android:color="@color/white" /> 
     <corners 
      android:radius="3dp" /> 
     <padding 
      android:left="10dp" 
      android:top="10dp" 
      android:right="10dp" 
      android:bottom="10dp" /> 
    </shape> 

</item> 

선택 :

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:color="@color/white" /> <!-- pressed --> 
    <item android:color="@color/black" /> <!-- default/unchecked --> 
</selector> 
+0

아 ~~~~~ !! 얼마나 바보 야 .. 나는 백그라운드 드로어 블 리소스에 모든 것을 넣어야한다고 생각했다. 많은 감사합니다! –

+0

당신을 진심으로 환영합니다! :) – androidu

+0

이고 BG 선택기는 drawable 디렉토리 아래에있는 xml입니다. 여기서 텍스트 색상 하나는 색상 디렉토리 아래의 xml입니다. http://stackoverflow.com/questions/8743584/how-to-set-the-text를 참조하십시오. -st-of-a-button-in-selectors – jobwat

관련 문제