ich habe
<?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"
/>
Jetzt möchte ich, dass diese Form ihre Farben basierend auf Informationen ändert, die ich von einem Webdienstanruf zurückerhalte. Es könnte also vielleicht gelb oder grün oder rot oder was auch immer sein, abhängig von der Farbe, die ich vom Web-Service-Anruf erhalte.
Wie kann ich die Farbe der Form ändern? Basierend auf diesen Informationen?
View.getBackground()
aGradientDrawable
und nicht a zurückgegeben,ShapeDrawable
wodurch die App zur Laufzeit abstürzt, da beim Versuch, die Referenz abzurufen und die Farbe programmgesteuert festzulegen, eine ungültige Besetzung vorliegt . [Android Shape doc] ( developer.android.com/guide/topics/resources/… ) gibt an: COMPILED RESOURCE DATATYPE: Ressourcenzeiger auf aGradientDrawable
.