我有
<?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"
/>
因此,现在我希望这种形状根据我从Web服务调用中获得的信息来更改颜色。因此它可能是黄色,绿色或红色,或者其他任何颜色,具体取决于我从网络服务电话收到的颜色。
如何更改形状的颜色?根据这些信息?
半径
drawable_rectangle.xml
getBackground
返回了GradientDrawable
而不是ShapeDrawable
。 LayerDrawable bgDrawable = (LayerDrawable) button.getBackground();
final GradientDrawable shape = (GradientDrawable)
bgDrawable.findDrawableByLayerId(R.id.round_button_shape);
shape.setColor(Color.BLACK);