Hay una forma de cambiar el color de un botón deshabilitado en android a través de estilos o de alguna otra forma ?

Actualmente tengo la siguiente,

drawable/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>

drawable/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>

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>

OriginalEl autor nixgadgets | 2015-10-11

4 Comentarios

  1. 15

    Usted tendrá que usar un selector para diferentes dibujables en esos estados.

    Puede crear un selector como este:

    <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>

    OriginalEl autor

  2. 3

    Especificar el color en el selector para android:state_enabled=»false» como dibujable

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

    Y aplicar este dibujable de recursos para el fondo de botón

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

    OriginalEl autor

  3. 2

    Intente esto:

    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>

    Después de esto sólo establece el color de fondo en su botón como este –

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

    OriginalEl autor

  4. 0

    Aquí está mi código que funciona correctamente con el botón de activar y desactivar el estado.

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_enabled="true" android:drawable="@drawable/ic_button_gradient"/>
       <item android:state_enabled="false" android:drawable="@color/gray"/>
    </selector>

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here