【发布时间】:2012-05-04 20:02:40
【问题描述】:
是否可以在应用程序运行时更改 Java 代码中的矩形(以 xml 绘制)颜色?
我的矩形.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
<stroke android:width="2dp" android:color="#ffffff" />
<padding android:left="20dp"
android:top="20dp"
android:right="20dp"
android:bottom="20dp" />
<solid android:color="#006600" />
</shape>
由 main.xml 绘制:
<View
android:id="@+id/myRectangleView"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="@drawable/rectangle"/>
我试过这种方式:
GradientDrawable sd;
View viewrectangle;
viewrectangle = (View) findViewById(R.id.myRectangleView);
sd = (GradientDrawable) viewrectangle.getBackground();
sd.setColor(0xffffff00);
sd.invalidateSelf();
只有当我把它放在 OnCreate 方法中时它才有效。
我想通过一个按钮改变矩形颜色,所以我把这段代码放在按钮的 onClick() 方法中。但是当我在应用程序运行时单击按钮时,颜色不会改变。有什么建议吗?
【问题讨论】:
-
如果以下任何答案解决了您的问题,或帮助您解决了问题,您应单击该答案旁边的复选标记,将其标记为已接受的答案,并给予作者功劳。