Changing the color of a disabled button in android

Is there a way to change the color of a disabled button in an android through styles or some other form?

I currently have the following:

range hood / button _default.xml

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

range hood / button _default_shape.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/button_default_background"/> <corners android:radius="3dp"/> </shape> 

<strong> values ​​/styles.xml

 <style name="AppTheme.Button"> <item name="android:background">@drawable/button_default</item> <item name="android:textColor">@android:color/white</item> <item name="android:textAllCaps">false</item> <item name="android:paddingTop">10dp</item> <item name="android:paddingBottom">10dp</item> <item name="android:focusable">true</item> <item name="android:clickable">true</item> <item name="android:gravity">center</item> <item name="android:textStyle">bold</item> <item name="android:textSize">17sp</item> <item name="android:textAppearance">@style/CustomFontAppearance</item> </style> 
+7
android button android-drawable
source share
3 answers

You will need to use a selector for different drawings in these states.

You can create a selector as follows:

 <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> 
+13
source share

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

 <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 paintable resource to the button background

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

Try it -

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 that, just set the background on your button as it is -

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

All Articles