某些设备上的Android呈现蓝色错误

ver*_*era 20 android android-color

我在各种设备上运行一个应用程序,并且两个蓝色的阴影看起来不对.请参阅附图.任何想法为什么会这样?如果我用不同的颜色替换颜色而没有任何其他更改,一切看起来都很好. 在此输入图像描述

编者注:原始海报声明项目资源中有一个colors.xml文件,颜色定义一次.颜色由名称(@ color/pbr)定义,其值为#447AD4.上面的屏幕截图的布局始终使用相同的资源名称,但呈现为不同的颜色.

Sea*_*anA 5

所以这看起来像是 tintMode 的问题。颜色看起来不同的原因是透明度。默认情况下,Android 中的 Drawable 具有 SRC_IN 的 tintMode,这意味着它们将保持其颜色,但在渲染过程中使用它们下方任何内容的 alpha。从它的外观来看,蓝色的下面有一些不是 100% 不透明的视图。

为了解决这个问题,您可以将 tintMode 显式设置为 SRC_OVER 之类的内容,这将保持您设置的 alpha 完好无损。另一个选项不是将背景设置为颜色,而是将其设置为具有实心填充的Shape Drawable。这将确保视图不透明并具有一致的颜色。