Change text color in shape on touch of button

13,815

Use color selector, something like this

src/color/button_text.xml

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true" android:color="#000000" /> 
     <item android:state_focused="true" android:color="#000000" />
     <item android:color="#FFFFFF" />
 </selector>

Then in the button you do this

<Button
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/text"
   android:textColor="@color/button_text" />
Share:
13,815
Mateusz Ryndak
Author by

Mateusz Ryndak

Updated on June 05, 2022

Comments

  • Mateusz Ryndak
    Mateusz Ryndak almost 2 years

    How to change color text in button when the user touches this button?

    Here is my shape.xml code:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
    
    
     <item android:state_pressed="true" >
    <shape android:shape="rectangle">
      <gradient android:startColor="#ffcc33" 
        android:endColor="#ffcc33"
        android:angle="270" />
      <corners android:radius="4dp" />
      <stroke android:width="2px" android:color="#FFFFFF" />
    </shape>
    </item>
    
      <item android:state_focused="true" >
    <shape android:shape="rectangle">
      <gradient android:startColor="#ffcc33" 
        android:endColor="#ffcc33"
        android:angle="270" />
      <corners android:radius="4dp" />
      <stroke android:width="2px" android:color="#FFFFFF" />
    </shape>
    </item>
    
      <item >
    <shape android:shape="rectangle">
      <gradient android:startColor="#333333" 
        android:endColor="#333333"
        android:angle="270" />
      <corners android:radius="4dp" />
      <stroke android:width="2px" android:color="#FFFFFF" />
    </shape>
    </item>
    
    </selector>