我在各种设备上运行一个应用程序,并且在两个设备上运行某种蓝色阴影看起来是错误的。请参阅所附图片。有什么想法吗?
如果我用另一种颜色替换颜色而没有其他更改,那么一切看起来都很好。
编者注:原始发布者指出,项目资源中只有一个colors.xml文件,并且颜色仅定义一次。颜色由名称(@ color / pbr)定义,并且值为#447AD4。上面的屏幕截图的布局始终使用相同的资源名称,但呈现为不同的颜色。
最佳答案
因此,这似乎与tintMode有关。颜色看起来不同的原因是透明度。默认情况下为Drawables in Android have a tintMode of SRC_IN,这意味着它们将保留其颜色,但在渲染期间使用其下方任何内容的Alpha。从它的外观来看,蓝色底下的 View 并不是100%不透明的。
为了解决这个问题,您可以将tintMode显式设置为SRC_OVER之类的值,以保持设置的Alpha不变。另一个选项是将背景设置为带有纯色填充的Shape Drawable,而不是在背景上设置颜色。这样可以确保 View 不透明并且具有一致的颜色。