我正在使用资源来设置我的TextView的某些背景样式(特定边框等)。 无法在资源中设置背景颜色,因为它可能因某些规则而异。Android布局资源保留旧值
然而,以后的任何利用这一资源被重用分配的最后一种颜色,即使是在一个完全不同的片段。看起来颜色正在分配给资源,而不仅仅是在TextView中,并在整个应用程序中重用。不过,需要注意的是,不同的TextView正在按照预期显示不同的背景颜色。
该资源的任何其他未来用途使用分配给它,而不是默认的颜色资源XML文件中设置的最后一个颜色这里的问题。每次使用资源时,我都不想在代码中重置它。有没有其他方法?
资源XML(specialbackground) - 注意默认的背景色为白色(#FFFFFF):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FFFFFF" />
<corners android:radius="7dp" />
<stroke
android:width="2dip"
android:color="#000000" />
</shape>
使用的代码(改变颜色) - 这个工程按预期:
tvText.setBackgroundResource(R.drawable.specialbackground);
GradientDrawable gd = (GradientDrawable) tvText.getBackground();
gd.setColor(myObj.getColor());
在代码中使用(发生问题时(未设置任何背景颜色) - 它使用上次定义的任何最后颜色,即使在完全不同的片段中):
tvText.setBackgroundResource(R.drawable.rounded_border);
您可以发布它目前看起来像 – 2014-09-02 05:39:47
我相信平台具有可绘制回收不检查如果颜色不同比XML – Niko 2014-09-02 05:42:16
@Niko貌似设置问题时的图像! – igorjrr 2014-09-02 05:56:16