我正在使用 <shape>
像这样的标签:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00FFFFFF" />
<stroke android:width="1dp" android:color="#FFFFFFFF" />
<padding android:left="1dp" android:top="1dp" android:right="1dp"
android:bottom="1dp" />
</shape>
我有很多使用 <shape>
创建的 View GridView 中的标记,我需要更改此处设置的部分:
<solid android:color="#00FFFFFF" />
并设置另一种颜色,但我不知道如何... 我尝试像这样使用 ImageView.Adapter:
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(160, 105));
imageView.setBackgroundColor(myBackgroundColors[position]);
imageView.setBackgroundResource(R.drawable.border);
我在调用 setBackgroundResource() 之前设置了背景颜色,在 XML 中我使用了透明颜色,但是它不起作用...有什么想法吗?
最佳答案
使用 <shape />
时( Shape Drawable ) xml 中的标记编译后的资源不是 ImageView ;它编译成 GradientDrawable . <solid />
标记定义纯色来填充定义的形状并将其设置为 android:color
.因此,要以编程方式更改它,您应该使用 setColor()方法。
关于android - 如何更改使用 java 代码中的 setBackgroundResource() 的 ImageView 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247698/