如何在Android上设置ImageView的背景颜色?

39

我尝试了几件事情,但没有任何效果... 我正在尝试在Android上更改ImageView的BackgroundColor,但是什么也没有发生...

这是我的xml:

<ImageView
   android:id="@+id/imageView1"
   android:layout_width="350dp"
   android:layout_height="550dp"
   android:layout_above="@+id/btnInfo"
   android:layout_alignLeft="@+id/fundo"
   android:layout_alignRight="@+id/btnInfo"
   android:layout_alignTop="@+id/fundo"
   android:layout_centerHorizontal="true"
   android:contentDescription="@string/backgroundMain" />

代码如下:

public void onStart()
    {
        super.onStart();
        Log.d("Teste", "In the onStart() event 5");

        ImageView backgroundImg = (ImageView) findViewById(R.id.imageView1);
        backgroundImg.setBackgroundColor(Color.rgb(255, 255, 255));
    }

我错过了什么吗?


2
也许如果我设置一种不同的颜色,而不是白色,我就能看到它... ¬¬ 好吧,我的代码正在运行... 感谢阅读这个的人 ;) - CarinaPilar
2
我本来想指出这一点,但是我觉得算了吧,不可能吧! - Benito Bertoli
5个回答

36

RGB:255, 255, 255是白色的颜色代码。由于你父布局的背景颜色也是白色,所以你看不到区别。

尝试更改颜色,例如:

backgroundImg.setBackgroundColor(Color.rgb(100, 100, 50));

否则更改父布局的背景颜色。


是啊,真可惜...当我意识到问题是白色时,已经太晚了...谢谢!;-) - CarinaPilar
能否在 XML 文件中同时设置?使用背景图像更改背景颜色? - jorge saraiva
@Abhishek V 我有一个图像视图,在其中使用了 https://material.io/resources/icons/?search=check&icon=library_add_check&style=baseline 的 'library_add_check' 图标的黑白两种色调,表示“全选”和“取消全选”功能。我需要父工具栏的颜色(即每个活动屏幕中不同的颜色)用于黑色图标阴影表示“取消全选”,白色阴影表示“全选”,那么我如何在更改时更改黑色图标背景? - KJEjava48

27

你的代码没有问题。但我更喜欢通过xml实现,这也会解决你的问题。只需在ImageView标记中添加以下内容。

android:background="@android:color/black"

22

理论上应该可以工作...但是试试这样做:

backgroundImg.setBackgroundColor(Color.parseColor("#FFFFFF"));

2

如果您想使用位于drawable文件夹中的XML文件,则可能需要使用以下代码:

imageView.setBackgroundResource(R.drawable.drawable);

2

使用 PorterDuff.Mode

imageView1.setColorFilter(colorCode,android.graphics.PorterDuff.Mode.SRC_IN);

PorterDuff.mode 是 Android 中组合和叠加图像的一种方式,详见这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接