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

Как получить цвета системы Android

Я видел ссылки на то, как устанавливать цвета системы, но мне нужно выяснить, как вы их получите - как вы узнаете, каковы они?

В Samsung Galaxy S, например, в представлениях табуляции, ListView выделяется при выборе элемента, а текстовая строка "Сводка" на экране предпочтений - все синие.

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

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

Как получить цвета системы Android?

4b9b3361

Ответ 1

Ответ на этот вопрос есть, но, вероятно, это не тот, который вы хотели услышать. Невозможно надежно сделать это. "Цвет выделения" на самом деле является частью изображения с девятью патчами, которое предоставляется на основе конкретной платформы. Некоторые используют стандартный оранжевый цвет, некоторые (Sense) используют зеленый цвет, а другие используют красный цвет. С исчерпывающим списком из них вы можете создать сопоставление от аппаратного обеспечения к цвету, но это не очень эффективно, потому что новое оборудование выходит все время, и некоторые из этих телефонов позволяют устранить смысл.

Единственное, что вы можете сделать, это сделать ваши кнопки согласованными внутри самого приложения, что само по себе является довольно сложной задачей. Если вам действительно нужен пользовательский элемент с цветом выделения (что достаточно распространено), то мой совет будет заключаться в том, чтобы скопировать ресурсы кнопок с выбранной вами платформы (мне нравятся сами ресурсы sdk по умолчанию), а затем вручную их устанавливают во всей вашей заявке. Таким образом, они всегда будут выглядеть одинаково независимо от того, на какой платформе вы находитесь, и поэтому всегда будут соответствовать вашим пользовательским представлениям. Обратите внимание, что это потребует от вас больше, чем просто кнопок. Диалоги и меню также необходимо будет изменить, что возможно, но трудно.

Действительно, это недостаток в том, как Android был разработан, и это вызывает у нас много печали. Хотелось бы, чтобы у меня был лучший ответ для вас, но я думаю, что это лучшее, что у нас есть.

Ответ 2

Вы можете указать цвета для элементов в макете XML с помощью системной переменной @android:color:

<TextView android:background="@android:color/white" android:textColor="@android:color/black" />