Change the color of a disabled button in android

Try this -

drawable/bg_button.xml :-

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

    <item android:drawable="@drawable/bg_button_focused" android:state_selected="true"/>
    <item android:drawable="@drawable/bg_button_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/bg_button_disabled" android:state_enabled="false" />
    <item android:drawable="@drawable/bg_button_normal"/>

</selector>

After this just set background on your button like this -

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_button"
    android:text="Button"/>

You'll have to use a selector for different drawables in those states.

You can create a selector like this:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/your_enabled_drawable" android:state_enabled="true" />
    <item android:drawable="@drawable/your_disabled_drawable" android:state_enabled="false" />
    <!-- default state-->
    <item android:drawable="@drawable/your_enabled_drawable" />
</selector>

Specify the color in selector for android:state_enabled="false" as drawable

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false">
        <shape>
            <solid android:color="#32ff09" />
        </shape>
    </item>
</selector>

And apply this drawable resource to background of button

 <Button
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/drawble_name"
    android:enabled="false"
    android:text="Selector Applied Button" />

Another way to achieve this is to create a color selector.

Create a file

res/color/your_color.xml

which looks like

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorDisabledBackground" android:state_enabled="false" />
    <item android:color="@color/colorEnabledBackground" />
</selector>

Then you may use it as a regular color

in a style:

<style name="YourStyle">
     <item name="android:background">@color/your_color</item>
     <item name="android:textColor">@android:color/black</item>
</style>

As well is in layouts, shapes or in code as etc.