首页 文章

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

提问于
浏览
4

有没有办法彻底改变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 的任何颜色,并用指定的颜色替换"skeleton"图像 . 也许这是因为色调总是具有alpha透明度?我确实在alpha部分指定了 0xFF .

1 回答

  • 7

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

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

相关问题