android - 如何更改使用 java 代码中的 setBackgroundResource() 的 ImageView 的背景颜色?

标签 android xml imageview border shapes

我正在使用 <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/

相关文章:

java - 使用 Java 代码显示 Imageview

android - 在 Android Studio 上找不到资源支持 :appcompat-v7:22. 0.0 的错误

java - 如何在Android中使用layoutDirection动态镜像整个布局?

java - 应用 TranslateAnimation 时 ImageView 消失

java - 无法在 ImageView 中显示图像

Android旋转imageview,我无法在onAnimationEnd()中设置imageview的最终位置

android - 二进制XML文件第14行:膨胀自定义ViewGroup类时出错

python - 根据 csv 中存储的路径和文本值高效更新 XML 文本内容

Android Retrofit 2 简单 XML 转换器

mysql - 为什么xsd是:complexType not an attribute?