问题
I have a Shape
defined in xml
. Now I need to change a solid color
from the code, could you please advice how?
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#000000"/>
<corners
android:bottomRightRadius="8dp"
android:bottomLeftRadius="8dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
</shape>
回答1:
I use this in my code
GradientDrawable myGrad = (GradientDrawable)rectangle.getBackground();
myGrad.setColor(Color.BLACK);
Hope this helps :)
EDIT: for GradientDrawable
instead of ShapeDrawable
回答2:
I met the problem when I set the background of the item(in the listview)the shape defined in xml, I've got ClassCastException when I invoke the convertview's getBackground() method, but when I invoke the item's outest view's getBackground() method,the Exception disappear, the problem resolved.
来源:https://stackoverflow.com/questions/16775891/how-to-change-solid-color-from-the-code