有没有办法彻底改变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 回答
您正在使用错误的混合模式,MULTIPLY结合了源颜色和您要添加的颜色 . 你可能想要这个:
imageView.setColorFilter(0xFFDDDDDD, PorterDuff.Mode.SRC_IN);