Cambiar el color sólido de la forma en el tiempo de ejecución dentro del xml Drawable usado como fondo
Tengo un archivo xml Drawable (background.xml):
<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape> ........... </shape> </item> <item android:id="@+id/shape_id"> <shape android:shape="rectangle"> <solid android:color="#ffefefef" /> </shape> </item> </layer-list>
Utilizado por un LinearLayout:
- ¿Hay algún límite para dibujar la ruta usando Geocoder (Android)?
- Android: dibuja la forma con la esquina sesgada
- Android: forma "esquinas" problema. ¿Es esto un error?
- Android - Rectángulo redondeado dentro de rectángulo redondeado
- Android: sólo se muestra el último elemento en la lista de capas
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/background" android:id="@+id/layout_id" >
Ahora necesito cambiar la forma shape_id
color sólido en tiempo de ejecución basado en algunas condiciones. ¿Como hacer esto?
- Forma dibujable que no se muestra cuando se utiliza en combinación con el atributo android: drawableBottom.
- Android Shape - Gradiente debe ir al lado derecho
- Android - cómo definir ShapeDrawables mediante programación?
- ¿Cómo enviar datos multipart / form a un servidor web desde android?
- Cómo definir una forma de círculo en un archivo extraíble xml de Android?
- Atributo size ignorado en la lista de capas
- Forma personalizada de Android
- Cambiar el radio de la esquina de programación programable
Encontrado por mí:
View v = findViewById(R.id.layout_id); LayerDrawable bgDrawable = (LayerDrawable)v.getBackground(); final GradientDrawable shape = (GradientDrawable) bgDrawable.findDrawableByLayerId(R.id.shape_id); shape.setColor(----);
- Quitar icono de la contraseña de la muestra en Android N
- Proyecto de biblioteca ¿se fusiona el archivo de manifiesto?