由于某些原因,我在使用setbackgrouncolor()时更改imageview的背景色时遇到问题。我想要的是将imageview的backgroundcolor更改为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叠加图中的一个图像有白色背景而不是透明背景。。。所以,没有虫子。我错了!
2条答案
按热度按时间rjee0c151#
源android参考
api级别29中不推荐使用此方法。请改用此方法:
使用blendModelColorFilter示例
例子:
如果你想要它的透明度:
2skhul332#
您的第一个代码块(如下)工作正常。因为imageview的默认背景色是透明的,所以在大多数情况下甚至没有必要这样做。
我通过在一个空白的活动布局中创建一个imageview并给它一个红色的背景色来测试它。然后我将您的代码添加到活动的oncreate()方法中,当我运行它时,背景色变得透明,因为白色的布局背景色显示了出来。您可以使用以下代码自己测试。
我不知道你到底想用一个透明的背景做什么,但是如果你把一个jpg图像加载到imageview中,除非你修改显示它的画布,否则透明度将不受支持。如果您希望在图像中支持透明度,则需要使用svg或png等格式。
希望这有帮助!