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