Я видел, что для Android существует множество разных тем, в зависимости от устройства. Например, на моем HTC WildFire цвет подсветки - "зеленый свет", а эмулятор - оранжевый.
Нужно ли вообще знать, каковы основные цвета интерфейса устройства, на котором работает мое приложение?
Итак, я могу установить (например) TextView
цвета фона в соответствии с темой устройства.
EDIT: Вы сказали мне, что это невозможно, поэтому...
Есть ли способ рисовать простой прямоугольник с цветом выделения? Может быть, пустая кнопка?
Спасибо!!
На самом деле не указанный цвет, сами чертежи фактически заменены на этих модифицированных скинах Android, которые выпускают HTC, Samsung и т.д. Таким образом, программно, нет прямого способа узнать, какая будет цветовая схема. Лучше всего было бы просто определить свои собственные чертежи для ваших виджетов с помощью вашей собственной цветовой схемы или даже повторно использовать настройки по умолчанию на складе Android, но скопируйте их в папку с возможностью переноса приложений и установите их в StateListDrawable и примените их к своему виджеты. Это гарантирует, что вы получите тот же стиль цвета на всех платформах, при этом недостатком является то, что ваше приложение не будет соответствовать схеме остальной части скина. В зависимости от вашего макета приложения это, вероятно, не будет проблемой.
Я не думаю, что есть способ получить то, что цвет подсветки по умолчанию, но вы можете, конечно, установить свой собственный, используя атрибут textColorHighlight = # aarrggbb в своем TextView в макете.
Вы можете использовать @android:drawable/list_selector_background
(или форму кода: android.R.drawable.list_selector_background
) в своих представлениях. Он имеет каждое из состояний выбора по умолчанию. Вы также можете создать селектор самостоятельно в выпадающей папке (это называется как default_highlight.xml):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@android:drawable/list_selector_background" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@android:drawable/list_selector_background" /> <!-- focused -->
<item android:drawable="@android:drawable/list_selector_background" /> <!-- default -->
</selector>
И измените любой из тех, которые вы можете настроить. Затем вы используете его, как любой, выбирая, устанавливая фон представления на него (default_highlight или все, что вы его называете).
Насколько я знаю, нет способа (я не вижу, как может быть действительно). Думаю, у вас может быть несколько разных тем в вашем собственном приложении, и пусть пользователь выбирает один, чтобы легко поближе соответствовать остальным настройкам.