Подтвердить что ты не робот

Android-рендеринг оттенка синего цвета на некоторых устройствах

Я запускаю приложение на разных устройствах, а на двух - определенный оттенок синего цвета. См. Прикрепленное изображение. Любые идеи, почему это так? Если я заменю цвет другим, без каких-либо изменений, все будет выглядеть нормально. введите описание изображения здесь

ПРИМЕЧАНИЕ РЕДАКТОРА: Оригинальный плакат утверждает, что в ресурсах проекта есть один файл colors.xml, и цвет определяется один раз. Цвет определяется по имени (@color/pbr) и имеет значение # 447AD4. В макете для скриншотов выше используется одно и то же имя ресурса, но отображается как разные цвета.

4b9b3361

Ответ 1

Таким образом, это выглядит как проблема с tintMode. Причина, по которой цвета выглядят по-разному, - прозрачность. По умолчанию Drawables в Android имеют tintMode из SRC_IN, что означает, что они сохранят свой цвет, но будут использовать альфа всех, что находится под ними во время рендеринга. По внешнему виду, есть виды под синими, которые не на 100% непрозрачны.

Чтобы решить эту проблему, вы можете явно указать tintMode на что-то вроде SRC_OVER, который сохранит сохраненную вами альфу. Другой вариант вместо того, чтобы устанавливать на задний план цвет, установите его на Shape Drawable с твердой заливкой. Это гарантирует, что представление непрозрачное и будет иметь согласованный цвет.

Ответ 2

Используя paint.net, я мог проверить, что цвет текста "Поиск пищи" одинаковый на каждом устройстве, которое исключает глобальный оттенок устройства или ошибку в процессе поиска снимков экрана.

  • Для тех, кто хочет проверить это: позаботьтесь о том, чтобы вы проверили цвет в середине буквы, например. центр f-креста, чтобы вы не получали цвета сглаживания.
  • ОБНОВЛЕНИЕ: это указывает на то, что цвета с разными цветами не являются проблемой глобального управления цветом, поскольку по крайней мере цвет текста тот же

Убедитесь, что вы оба не указали

  • Различные файлы макета
  • Различные цветовые схемы

для разных версий Android/плотности экрана/размеров экрана

Ответ 3

Вы проверили, что ресурс, на который вы ссылаетесь (цвет), не предоставляется несколько раз для разных разрешений экрана с использованием спецификаторов конфигурации?

Например, убедитесь, что у вас нет нескольких colors.xml или styles.xml в папке значений-mdpi или в папке values-xxhdpi. Если на него ссылаются более чем в одной папке, это проблема.

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

Ответ 4

Возможно, вы настроили тему в

RES/значение/style.xml

Также настройте аналогично в

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

(создайте папки values-v11 и values-v14, если они еще не существуют, и скопируйте в них свой стиль .xml. Если в них находятся папки и style.xml, добавьте их и убедитесь, что вы не удалить что-либо важное, перезаписав файл.)

Источник

Ответ 5

Это может быть проблема с конкретным устройством с цветом # 447AD4. Различные производители смартфонов используют в своем устройстве другой тип экрана. Я думаю, что это, возможно, проблема с конкретным устройством.

Ответ 6


ПРИЧИНА


Для этого нет причины "серебряной пули", но одной из возможных причин могут быть драйверы. Некоторые производители чипсетов сделали особенно плохую работу по обновлению своих графических драйверов, что делает цвета в приложениях, играх и любом графическом контенте непоследовательными в телефонах. Разработчики могут столкнуться с совершенно разными цветовыми схемами на разных устройствах Android, ничем не близкими к тем, что они намеревались.

В экранах Samsung используются пиксели различной формы.

Эта проблема может быть вызвана экраном PenTile, и основное отличие состоит в том, что красные, зеленые и синие субпиксели не совпадают с нормальный дисплей.

В принципе, вместо каждого пикселя, получающего красный, зеленый и синий субпиксели одинакового размера, пиксель PenTile получает красные и зеленые или синие и зеленые субпиксели. Красный и синий цвета больше зеленого, чтобы сбалансировать яркость. Поскольку на вашем телефоне в два раза больше зеленых субпикселей, чем на синем и синем, ваш выбор цвета, вероятно, выходит за рамки этих устройств.


РЕШЕНИЕ


Все устройства выбирают цвета с разной интенсивностью. Вы ничего не можете с этим поделать. Его аппаратное обеспечение, которое отображает в нем изображения и цвета. Если вы хотите согласованности между всеми устройствами, вы должны откалибровать свой монитор.