Android - 深色背景上的Drawables的动态着色

时间:2016-09-08 02:14:03

标签: android

描述

当试图改变深色背景上的可绘制颜色时,我遇到了一个颜色略有变化的问题。

在下图中,您将看到具有白色背景的顶视图具有深蓝色图标颜色,但是位于深色背景之上的下方视图具有浅蓝色。

Image #1

无论包含视图的背景颜色如何,可绘制颜色都应保持一致。

代码

    ImageView fairInfoEmailImageView = (ImageView) getView().findViewById(R.id.fairInfoEmailImageView);
    fairInfoEmailImageView.setColorFilter(dashboardIconColor, PorterDuff.Mode.MULTIPLY);

    ImageView fairInfoSurveyImageView = (ImageView) getView().findViewById(R.id.fairInfoSurveyImageView);
    fairInfoSurveyImageView.setColorFilter(dashboardIconColor, PorterDuff.Mode.MULTIPLY);

注意*:下面的图像是由ImageView的drawables白色实现的,然后应用带有重写颜色的MULTIPLY彩色滤镜。

尝试

  • 尝试过ColorFilters,Tints等,但我相信这些都会将背景颜色带入等式中。

问题

有没有办法在不使用ColorFilter的情况下动态更改drawable的颜色?

随时可以询问更多代码或有关此问题的任何问题。

1 个答案:

答案 0 :(得分:0)

图片中的这两个图标颜色相同。根据MSPaint的说法,R19 G89 B116。

这是一种视错觉,使得不同背景的颜色看起来不同,但它们是相同的。