36

我尝试了几件事,但没有任何效果...我正在尝试更改 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));
    }

我错过了什么?

4

5 回答 5

34

RGB:255、255、255 是白色的颜色代码。由于您的父布局背景颜色也是白色,因此您不会看到差异。

尝试改变颜色

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

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

于 2013-10-19T04:51:30.223 回答
27

你的代码没有问题。但我更喜欢通过 xml 来做这件事,这也可以解决你的问题。只需将其添加到您的 ImageView 标记中。

android:background="@android:color/black"
于 2013-10-19T02:09:03.300 回答
19

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

backgroundImg.setBackgroundColor(Color.parseColor("#FFFFFF"));
于 2013-10-19T01:21:57.810 回答
2

如果要使用放置在 drawable 文件夹中的 XML 文件,可能需要使用:

imageView.setBackgroundResource(R.drawable.drawable);
于 2014-06-07T15:27:09.017 回答
2

使用PorterDuff.Mode

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

PorterDuff.mode提供了一种在 Android 中组合和叠加图像的方法,另请参见PorterDuff.Mode 在 android graphics 中的含义。它有什么作用?

于 2015-07-21T10:16:51.077 回答