Inflar la lista de capas de las formas en android

Tengo el archivo siguiente en mi carpeta /drawable/mybkg.xml llamado /drawable/mybkg.xml . Quiero inflarlo para que pueda cambiar los colores mediante programación. ¿Eso es posible en Android?

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="oval" > <padding android:top="5dp" android:bottom="2dp" android:left="2dp" android:right="2dp" /> <solid android:angle="270" android:color="#1bd4f6" /> <stroke android:width="2dp" android:color="#121ce5" /> </shape> </item> <!-- Foreground --> <item> <shape android:shape="oval" > <solid android:color="#1b90f6" /> </shape> </item> </layer-list> 

Acabo de ver una clase llamada LayerDrawable . ¿Alguien sabe cómo puedo convertir mi archivo xml en un LayerDrawable escribiendo el código o inflando el xml existente?

One Solution collect form web for “Inflar la lista de capas de las formas en android”

Debe utilizar el método Resources.getDrawable(int id) . Aquí está la documentación: http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int) Infla cualquier tipo de recurso extraíble. Lo único que queda por hacer es emitir el drawable devuelto al tipo más específico que necesites (en tu caso a LayerDrawable ). Aquí hay un ejemplo:

 // calling from Activity LayerDrawable d = (LayerDrawable) getResources().getDrawable(R.drawable.my_drawable); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.