io ho
<?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"
/>
Quindi ora voglio che questa forma cambi i colori in base alle informazioni che ricevo da una chiamata al servizio web. Quindi potrebbe essere giallo o verde o rosso o qualsiasi altra cosa a seconda del colore che ricevo dalla chiamata serivce web.
Come posso cambiare il colore della forma? Sulla base di queste informazioni?
View.getBackground()
restituito unGradientDrawable
e non unShapeDrawable
arresto anomalo dell'app in fase di runtime, a causa di cast non valido quando si tenta di ottenere il riferimento e impostare il colore a livello di codice. [ Documento Android Shape] ( developer.android.com/guide/topics/resources/… ) afferma: DATATYPE RISORSE COMPILATE: puntatore delle risorse a aGradientDrawable
.