2012-03-14 4 views
4

Различные устройства Android имеют разные темы. Это означает, что цвета фона, как и в диалоговом окне, могут отличаться среди версий Android и среди производителей.Цвет значка на разные темы

Это может привести в иконки становится «невидимым»:

compare: 2.3 <-> 4.0.3

Проблема с темами фондовых Android могут быть решены относительно легко, предоставляя различные цветные иконки в целевых определенных папках, например белые значки в папке drawable-v14, а черные - в drawable-v10. Но это не решает проблему, связанную с настраиваемыми темами от производителей, возможно, это TouchWiz, Blur или Sense. Этот способ невозможно охватить каждое устройство.

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

Итак, вопрос в следующем: Как обеспечить пользовательские значки, которые будут хорошо работать на каждой теме, не касаясь самой темы?

ответ

1

Учет всех вариантов выбора поставщика (и ошибок) был бы болью.

Я вижу несколько вариантов:

  1. Явных выбрать фондовую тему и надежду на лучший
  2. Выберите собственную тему, полученную из маточной темы, где вы управляете цветом фона
  3. Динамически оценить цвет фона для выбранной темы и установить значок на основе переломной точки (например, темные значки, если фон достаточно светлый). Не уверен, что это будет практично, но, по крайней мере, оно должно быть несколько универсальным.

Недавно я пошел с жестко закодированными цветами в производной теме, чтобы исправить ошибку в выборе цвета диалогового окна диалога Nook. Более обширное тестирование, вероятно, покажет мне еще одну платформу, с которой я просто стал хуже.

Надеюсь, у кого-то есть лучший ответ, чем у тех, потому что ни один из них не кажется полностью чистым и универсальным. Снова прочитав свой пост, похоже, что ни один из этих вариантов не соответствует вашим критериям, не касающимся темы.

Смежные вопросы