Android LinearLayout con recurso de color: ¿Qué estoy haciendo mal?

Seguí este tutorial para crear una lista de estado de color para una vista particular de Android. Solo quiero resaltar cuando se hace clic para que el usuario sepa por qué la pantalla acaba de cambiar.

Cuando se muestra la vista, aparece el siguiente error:

org.xmlpull.v1.XmlPullParserException: archivo binario XML línea n. ° 3: la etiqueta requiere un atributo ‘dibujable’ o una etiqueta secundaria que define un dibujable

Mi color XML (en res / color / viewcolor.xml):

       

Mi diseño XML (en res / layout / myview.xml):

     

¿Qué me perdí?

Recuerdo que trabajé alrededor de este error al usar estado dibujable en lugar de color de estado. Por alguna razón, el fondo del diseño simplemente no funciona con colores con estado. Por lo tanto, intente crear un dibujante con estado (por ejemplo, una lista de formas dibujables con diferentes colores) y úselo como fondo.

res / drawable / pressed.xml:

    

res / drawable / normal.xml:

    

res / drawable / background.xml:

      

Luego usa background.xml dibujable como fondo 🙂

En lugar de usar formas en su dibujo, puede usar el atributo android:drawable que acepta un recurso de color (por ejemplo, @ color / black).

layout.xml

     

my_drawable.xml

            

En my_drawable.xml debes asegurarte de que los colores que especifiques estén definidos en res/values/colors.xml , o esto no funcionará.

Si desea usar una imagen en lugar de un cambio de color de un recurso de color a un recurso dibujable. Ejemplo:

 android:drawable="@color/YOUR_COLOR_HERE" android:drawable="@drawable/YOUR_IMAGE_HERE"