Android 在某些设备上呈现蓝色阴影错误

标签 android android-color

我正在各种设备上运行一个应用程序,并且在两个设备上,某种蓝色看起来不对。请看附图。任何想法为什么会这样? 如果我用其他颜色替换颜色而不进行任何其他更改,一切看起来都很好。 enter image description here

编者注:原始海报指出项目资源中有一个 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 是不透明的并且具有一致的颜色。

关于Android 在某些设备上呈现蓝色阴影错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723587/

相关文章:

java - 如何在Android中检索特定的列?

android - 在没有播放服务的情况下,Google map v2 无法在 2.2 设备上使用吗?

android - TestCase 类 junit.extensions.ExceptionTestCase 缺少没有参数或单个 String 参数的公共(public)构造函数

android - getResources().getColor() 已弃用

android - 基于另一种颜色为颜色资源设置 alpha

android - 更改位图的一种特定颜色

Android - 应用程序之间的共享变量

android - 如何更改工具栏上项目的颜色

java - 通过给定颜色 Int 的因子获得更深的颜色

android - Room - 在运行时(在用户端)添加或删除列?