Ответ 1
Вы можете посмотреть источник с android themes.xml
, styles.xml
и colors.xml
. Единственное, что вы замечаете из colors.xml, состоит в том, что определено не так много цветов. Это связано с тем, что большинство виджетов выполняются через файлы с 9 патчами.
Стиль кнопки:
223 <style name="Widget.Button">
224 <item name="android:background">@android:drawable/btn_default</item>
225 <item name="android:focusable">true</item>
226 <item name="android:clickable">true</item>
227 <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
228 <item name="android:textColor">@android:color/primary_text_light</item>
229 <item name="android:gravity">center_vertical|center_horizontal</item>
230 </style>
Вся работа, выполненная для изменения цветов фона, выполняется в btn_default
Drawable
.
Источник btn_default.xml:
17 <selector xmlns:android="http://schemas.android.com/apk/res/android">
18 <item android:state_window_focused="false" android:state_enabled="true"
19 android:drawable="@drawable/btn_default_normal" />
20 <item android:state_window_focused="false" android:state_enabled="false"
21 android:drawable="@drawable/btn_default_normal_disable" />
22 <item android:state_pressed="true"
23 android:drawable="@drawable/btn_default_pressed" />
24 <item android:state_focused="true" android:state_enabled="true"
25 android:drawable="@drawable/btn_default_selected" />
26 <item android:state_enabled="true"
27 android:drawable="@drawable/btn_default_normal" />
28 <item android:state_focused="true"
29 android:drawable="@drawable/btn_default_normal_disable_focused" />
30 <item
31 android:drawable="@drawable/btn_default_normal_disable" />
32 </selector>
Каждый из них является файлом с 9 патчами. Проблема в том, что это png. Цвета встроены в файлы изображений и нигде не определены. Как вы заметили, эти изображения могут быть заменены и внешний вид меняется.
К сожалению, то, что вы хотите, невозможно. Вам нужно будет выбрать один цвет. Этот цвет, вероятно, должен быть выбран в соответствии с остальной частью вашего приложения. Извините: (