Android – стиль кнопки по умолчанию

Вопрос: Где можно найти стили xml по умолчанию с шестнадцатеричными кодами цветов?

Я ищу стиль «buttonStyle» и другие стили по умолчанию, которые влияют на такие аспекты, как TextViews, Buttons и т. Д. (Если вы не меняете стиль аспект)

Я посмотрел в <instalation_folder>\android-sdk\platforms\android-<versio>\data\res\values и <instalation_folder>\android-sdk\platforms\android-<version>\data\res\colors но я didn Фактически я нахожу то, что искал.

Надеюсь, мой вопрос ясен.


Из-за низкой репутации я не могу ответить на этот вопрос. Вот ответ

Ответ

С небольшим количеством googling я обнаружил, что «buttonStyle» на самом деле «Widget.Button» – Styling Android со значениями по умолчанию

Вот как это работает:

  • Как я уже сказал, стиль «buttonStyle» – это стиль «Widget.Button», определенный в \android-sdk\platforms\android-<version>\data\res\values\styles.xml . Для фона задано значение: @android:drawable/btn_default
  • \android-sdk\platforms\android-<version>\data\res\drawable\btn_default.xml определяет цвет фона кнопки в качестве селектора. Цвет фактически зависит от состояния кнопки. Цвет по умолчанию: @drawable/btn_default_normal
  • С небольшим количеством поиска я обнаружил, что btn_default_normal является png-изображением, расположенным в \android-sdk\platforms\android-<version>\data\res\drawable-mdpi

Я нахожу это немного запутанным, но я надеюсь, что это поможет кому-то, может быть …

Solutions Collecting From Web of "Android – стиль кнопки по умолчанию"

Понимание того, как работают стили Android, может быть немного беспорядочным.

Я попытаюсь объяснить, как будет основываться основной поток работы, основанный на примере.

Предположим, вы хотите знать, что такое фон по умолчанию для кнопок. Это может быть либо простой цвет (маловероятный), либо вытягиваемый (существует много разных типов чертежей).

У Android есть темы. Тема в основном определяет, какой стиль применяется к виджетам. Поэтому наш первый шаг – найти тему Android по умолчанию.

Вы найдете его под android-sdk\platforms\android-15\data\res\values\themes.xml

В этом файле темы найдите button .

Вы найдете что-то вроде этого:

 <!-- Button styles --> <item name="buttonStyle">@android:style/Widget.Button</item> 

Это означает, что тема применяет стиль Widget.Button к кнопкам.

Хорошо, теперь давайте найдем стиль Widget.Button .

Весь стиль Android по умолчанию определяется в файле android-sdk\platforms\android-15\data\res\values\styles.xml

Теперь найдите Widget.Button

Вы найдете что-то вроде этого:

 <style name="Widget.Button"> <item name="android:background">@android:drawable/btn_default</item> <item name="android:focusable">true</item> <item name="android:clickable">true</item> <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item> <item name="android:textColor">@android:color/primary_text_light</item> <item name="android:gravity">center_vertical|center_horizontal</item> </style> 

Интересная строка:

<item name="android:background">@android:drawable/btn_default</item>

Это означает, что в качестве фона кнопки есть btn_default называемый btn_default .

Теперь нам нужно найти файл с именем btn_default.* В одной из выпадающих папок под android-sdk\platforms\android-15\data\res .

Это может быть либо изображение (очень маловероятно), либо файл xml, такой как btn_default.xml .

После небольшого поиска вы найдете файл android-sdk\platforms\android-15\data\res\drawable\btn_default.xml

Он содержит что-то вроде этого:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_default_normal" /> <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/btn_default_normal_disable" /> <item android:state_pressed="true" android:drawable="@drawable/btn_default_pressed" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/btn_default_selected" /> <item android:state_enabled="true" android:drawable="@drawable/btn_default_normal" /> <item android:state_focused="true" android:drawable="@drawable/btn_default_normal_disable_focused" /> <item android:drawable="@drawable/btn_default_normal_disable" /> </selector> 

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

Нет, давайте посмотрим на состояние по умолчанию.

<item android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />

Он применяет btn_default_normal называемый btn_default_normal .

Теперь нам нужно найти эту возможность.

Опять же, нам нужно найти файл с именем btn_default_normal.* В одной из выпадающих папок под android-sdk\platforms\android-15\data\res .

Это может быть снова изображение или файл xml, например btn_default_normal.xml .

Вы найдете несколько файлов под названием «btn_default_normal.9.png» в разных папках с возможностью рисования для разных разрешений.

🙂 Теперь вы знаете, что btn_default_normal.9.png устанавливается в качестве фона кнопки.

Вы можете найти стили по умолчанию для виджетов android при объявлении в XML:

 style="@android:style/Widget.Button" - standard Button style="@android:style/Widget.TextView" - standard TextView 

Например, это стиль кнопки по умолчанию:

  <style name="Widget.Button"> <item name="android:background">@android:drawable/btn_default</item> <item name="android:focusable">true</item> <item name="android:clickable">true</item> <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item> <item name="android:textColor">@android:color/primary_text_light</item> <item name="android:gravity">center_vertical|center_horizontal</item> </style> 

Фон кнопки по умолчанию:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_default_normal" android:state_enabled="true" android:state_window_focused="false"/> <item android:drawable="@drawable/btn_default_normal_disable" android:state_enabled="false" android:state_window_focused="false"/> <item android:drawable="@drawable/btn_default_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/btn_default_selected" android:state_enabled="true" android:state_focused="true"/> <item android:drawable="@drawable/btn_default_normal" android:state_enabled="true"/> <item android:drawable="@drawable/btn_default_normal_disable_focused" android:state_focused="true"/> <item android:drawable="@drawable/btn_default_normal_disable"/> </selector> 

Вы можете получить цвет по умолчанию с помощью любого графического редактора: путь к стандартной кнопке NinePatch .. \ android-sdk \ platform \ android-13 \ data \ res \ drawable-hdpi