首页 > 解决方案 > Android:是否可以使用 setColorFilter 更改 ImageView 的背景颜色?

问题描述

由于某些原因,我在使用 setBackgrouncolor() 时更改 ImageView 的背景颜色时遇到问题。我想要的是将 ImageView 的背景色更改为 Color.TRANSPARENT。还有其他方法吗:

ImageView iv = (ImageView)findViewById(R.id.myImageView);
iv.setBackgroundColor(Color.TRANSPARENT);

将我的 imageView 的背景颜色更改为透明。

例如可以用 setColorFilter() 来完成吗?像:(有什么方便的模式?)

ImageView iv = (ImageView)findViewById(R.id.myImageView);
iv.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);

或任何其他解决方案?

谢谢 !

我的答案:

我没有看到我放置在 ImageViews 叠加层中的其中一张图像具有白色背景而不是透明背景......所以没有错误。我的错!

标签: javaandroidkotlinimageviewandroid-imageview

解决方案


Android 参考

public void setColorFilter (int color,PorterDuff.Mode mode)

此方法在 API 级别 29 中已弃用。请改用此方法:

setColorFilter(android.graphics.ColorFilter)

带有 BlendModeColorFilter 的实例

例子:

iv.setColorFilter(new BlendModeColorFilter(getResources().getColor(R.color.White), BlendMode.SRC_IN));

如果你想要它的透明度:

imageView.setAlpha(0.5f);

推荐阅读