studio layout_width examples ejemplo dinamico constraint android android-layout

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



relativelayout android (2)

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

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myview" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top" android:background="@drawable/myDrawable"> <!-- other views in layout--> </LinearLayout>

my_drawable.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- focused --> <item android:state_focused="true" android:drawable="@color/YOUR_COLOR_HERE" /> <!-- focused and pressed--> <item android:state_focused="true" android:state_pressed="true" android:drawable="@color/YOUR_COLOR_HERE" /> <!-- pressed --> <item android:state_pressed="true" android:drawable="@color/YOUR_COLOR_HERE" /> <!-- default --> <item android:drawable="@color/YOUR_COLOR_HERE" /> </selector>

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"

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

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#ff33ffff"/> <!-- pressed --> <item android:color="#ff000000"/> <!-- default --> </selector>

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

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myview" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="top" android:background="@color/viewcolor"> <!--crap in the layout--> </LinearLayout>

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

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#ff33ffff" /> </shape>

res / drawable / normal.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#ff000000" /> </shape>

res / drawable / background.xml:

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

Luego usa background.xml dibujable como fondo :)