以编程方式更改 imageView 的颜色

Bis*_*ret 0 layout android imageview

我只想使用代码更改 imageView 对象的颜色,但事实证明它比听起来要困难得多。

这是我的对象 xml:

 <ImageView
    android:id="@+id/lifeSquare"
    android:layout_width="50dp"
    android:layout_height="30dp"
    android:background="#2a80b9"
    android:visibility="invisible"
    android:adjustViewBounds="false"
    android:clickable="true"
    android:cropToPadding="false"
    android:padding="0dp"
    android:scaleType="fitStart" />
Run Code Online (Sandbox Code Playgroud)

如您所见,它只是一个蓝色方块。我希望能够在代码中更改这一行:

    android:background="#2a80b9"
Run Code Online (Sandbox Code Playgroud)

就是这样!我已经阅读了很多关于这个主题的帖子,最有希望的有以下解决方案:

View someView = findViewById(R.id.lifeSquare);
View root = someView.getRootView();
root.setBackgroundColor(Color.parseColor("#fffff"));
Run Code Online (Sandbox Code Playgroud)

但它不起作用。它只是让颜色完全保持原样。

有没有人以前做过这个,或者有更好的想法?

Kus*_*hal 5

为什么要设置background根视图。仅此声明将起作用:

ImageView someView = (ImageView) findViewById(R.id.lifeSquare);
someView.setBackgroundColor(Color.parseColor("#ffffff"));
Run Code Online (Sandbox Code Playgroud)

忧虑 :

还有一点是你imageView有可见性invisible

android:visibility="invisible"
Run Code Online (Sandbox Code Playgroud)

为什么要为 imageview 设置 invisible 属性?