j'ai
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#FFFF00" />
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
</shape>
<TextView
android:background="@drawable/test"
android:layout_height="45dp"
android:layout_width="100dp"
android:text="Moderate"
/>
Alors maintenant, je veux que cette forme change de couleur en fonction des informations que je reçois d'un appel de service Web. Cela peut donc être jaune, vert ou rouge ou autre, selon la couleur que je reçois de l'appel de service Web.
Comment puis-je changer la couleur de la forme? Sur la base de ces informations?
View.getBackground()
retourne unGradientDrawable
et non un,ShapeDrawable
ce qui provoque le blocage de l'application au moment de l'exécution, en raison d'une distribution non valide lors de la tentative d'obtention de la référence et de la définition de la couleur par programme. [Android Shape doc] ( developer.android.com/guide/topics/resources/… ) indique: DATATYPE DE RESSOURCES COMPILÉES: pointeur de ressource vers un fichierGradientDrawable
.