使用浅色完全更改Android ImageView的颜色

时间:2014-12-01 03:07:00

标签: android android-drawable android-bitmap

有没有办法彻底改变Android中ImageView的颜色?我尝试使用

imageView.getDrawable().setColorFilter(new  PorterDuffColorFilter(0xFFF7962F, PorterDuff.Mode.MULTIPLY));

imageView.setColorFilter(0xFFDDDDDD, PorterDuff.Mode.MULTIPLY);

ImageView上,灰色图片可绘制,但他们只在现有灰色的顶部添加了一种颜色,使其看起来有点奇怪。

在iOS上你可以做到

[imageView setImage:[[UIImage imageNamed:@"my_image"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal];
imageView.tintColor = [UIColor redColor];

它将完全删除用于渲染UIImageView的任何颜色并替换"骨架"具有指定颜色的图像。或许这是因为色调总是具有alpha透明度?我确实在alpha部分指定了0xFF

1 个答案:

答案 0 :(得分:7)

您使用了错误的混合模式,MULTIPLY结合了源颜色和您添加的颜色。你可能想要这个:

imageView.setColorFilter(0xFFDDDDDD, PorterDuff.Mode.SRC_IN);