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:

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

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(----); 
  • Forma dibujable como fondo, una línea en la parte inferior
  • ¿Cómo crear un teclado en pantalla de Android que no es un rectángulo en la parte inferior de la pantalla?
  • Necesito cambiar el color del trazo a un color definido por el usuario. Nada que ver con el estado
  • Android: Disposición con la sombra de la gota redondeada
  • Caja de múltiples movimientos de Android en xml extraíble
  • Crear lista de capas con esquinas redondeadas mediante programación
  • Android define la forma XML como dibujable mediante programación
  • Cómo hacer gradiente de fondo en android
  • RecyclerView con elementos personalizados
  • ¿Cómo crear la forma del anillo drawable en androide?
  • Android: ¿Cómo puedo utilizar la capa de lista y los elementos de forma para dibujar una regla horizontal cuando se establece como fondo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.