我只想使用代码更改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" />
正如你所看到的,它只是一个蓝色方块。我希望能够在代码中更改此行:
android:background="#2a80b9"
就是这样!我已经阅读了很多关于这个主题的帖子,最有希望的有以下解决方案:
View someView = findViewById(R.id.lifeSquare);
View root = someView.getRootView();
root.setBackgroundColor(Color.parseColor("#fffff"));
但它不起作用。它只是保持原样的颜色。
以前是否有人这样做过,或者有更好的想法?
答案 0 :(得分:4)
为什么要设置根视图的background
。这句话就可以了:
ImageView someView = (ImageView) findViewById(R.id.lifeSquare);
someView.setBackgroundColor(Color.parseColor("#ffffff"));
关注:
还有一点是,您的imageView
具有可见性invisible
:
android:visibility="invisible"
为什么要为imageview设置不可见属性?
答案 1 :(得分:0)
您可以将所有颜色十六进制代码保存在资源的color.xml
内部值文件夹
imageView.setBackgroundColor(getResources().getColor(R.color.grey));
答案 2 :(得分:0)
参考此代码:
imageView.setColorFilter(imageView.getContext().getResources().getColor(R.color.desired_color), PorterDuff.Mode.SRC_ATOP);
答案 3 :(得分:0)
如果您使用十六进制代码作为颜色,并且要将颜色设置为图像的背景,则这是kotlin代码。
val bitmap = Bitmap.createBitmap(30, 30, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
val colorCode = "#ffffff"
canvas.drawColor(Color.parseColor(colorCode))
mImageViewLogo.setImageBitmap(bitmap)