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

时间:2015-09-22 17:51:14

标签: android android-color

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

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

6 个答案:

答案 0 :(得分:4)

使用paint.net我可以验证每个设备上的文本颜色“搜索你的食物”是相同的,它排除了设备全局阴影或屏幕截图检索过程中的错误

  • 对于任何想要验证这一点的人:请注意检查字母中间的颜色,例如f十字的中心,所以你不会得到抗锯齿颜色。
  • 更新:这表示不同的区域颜色不是设备全局颜色处理问题,因为至少文本颜色相同

确保您都没有指定

  1. 不同的布局文件
  2. 不同颜色的绘图
  3. for different Android versions/ screen densities / screen sizes

答案 1 :(得分:3)

所以这看起来像是tintMode的问题。颜色看起来不同的原因是透明度。默认情况下,Drawables in Android have a tintMode of SRC_IN,意味着它们将保留其颜色,但在渲染过程中使用其下方的alpha。从它的外观来看,蓝色下面的视图不是100%不透明的。

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

答案 2 :(得分:2)

您是否检查过使用配置限定符为不同的屏幕分辨率多次提供您引用的资源(颜色)?

例如,确保在values-mdpi文件夹或values-xxhdpi文件夹中没有多个colors.xml或styles.xml。如果在多个文件夹中引用它,那就是你的问题。

http://developer.android.com/guide/practices/screens_support.html#qualifiers

答案 3 :(得分:2)

您可能已在

中自定义主题
  

<强> RES /值/ style.xml

同样在

中进行自定义
  

res / values-v11 / style.xml res / values-v14 / style.xml

(创建values-v11values-v14文件夹(如果尚未存在)并复制粘贴你的style.xml。如果文件夹中的文件夹和style.xml已经存在,请附加你的东西并确保不要通过覆盖文件来删除任何重要内容。)

Source

答案 4 :(得分:1)

可能是颜色为#447AD4的设备特定问题。不同的智能手机制造商在其设备中使用不同类型的屏幕所以这可能是我认为的设备特定问题。

答案 5 :(得分:0)

  

原因

没有&#34;银弹&#34;原因之一,但可能的原因之一可能是司机。某些芯片组制造商在更新其图形驱动程序方面做得特别糟糕,这使得应用程序,游戏和任何图形内容中的颜色在手机上不一致。开发人员可能会在各种Android设备上遇到完全不同的配色方案,没有接近他们的预期。

三星屏幕使用不同形状的像素。

此问题可能是由于PenTile screen造成的,主要区别在于红色,绿色和蓝色子像素与普通显示器不同。

基本上,PenTile像素不是每个像素都有相同大小的红色,绿色和蓝色子像素,而是获得红色和绿色或蓝色和绿色子像素。红色和蓝色比绿色大,以平衡亮度。 由于手机上绿色子像素的数量是红色和蓝色的两倍,因此您的颜色选择可能超出了这些设备的色域。

  

所有设备都会选择不同强度的颜色。你无能为力。它的硬件可以渲染图像和颜色。如果您希望所有设备之间保持一致,则必须calibrate your monitor