Question: Où puis-je trouver des styles xml par défaut avec des codes de couleurs hexadécimaux?
Je recherche le style 'buttonStyle' et d'autres styles par défaut qui affectent des aspects tels que TextViews, Buttons, etc. (si vous ne changez pas le style de l'aspect)
J'ai levé les yeux dans <instalation_folder>\Android-sdk\platforms\Android-<versio>\data\res\values
et <instalation_folder>\Android-sdk\platforms\Android-<version>\data\res\colors
mais je n'ai pas trouvé ce que je cherchais.
J'espère que ma question est claire.
Réponse
Avec un peu de recherche sur Google, j'ai trouvé que 'buttonStyle' est en fait 'Widget.Button' - Style Android With Defaults
Voilà comment cela fonctionne:
\Android-sdk\platforms\Android-<version>\data\res\values\styles.xml
. L'arrière-plan est défini sur: @Android:drawable/btn_default
\Android-sdk\platforms\Android-<version>\data\res\drawable\btn_default.xml
définit la couleur d'arrière-plan du bouton comme sélecteur. La couleur dépend en fait de l'état du bouton. La couleur par défaut est définie sur @drawable/btn_default_normal
\Android-sdk\platforms\Android-<version>\data\res\drawable-mdpi
Je trouve cela un peu déroutant, mais j'espère que cela aidera quelqu'un, peut-être ...
Comprendre comment les styles Android fonctionnent) peut être un peu compliqué.
Je vais essayer d'expliquer comment serait le flux de travail de base, sur la base d'un exemple.
Supposons que vous souhaitiez connaître l'arrière-plan par défaut des boutons. Il peut s'agir d'une couleur simple (peu probable) ou d'un dessinable (il existe de nombreux types de dessinables).
Android a des thèmes. Un thème définit essentiellement quel style est appliqué à quel widget. Par conséquent, notre première étape consiste à trouver le thème Android Android.
Vous le trouvez sous Android-sdk\platforms\Android-15\data\res\values\themes.xml
Dans ce fichier de thème, recherchez button
.
Vous trouverez quelque chose comme ceci:
<!-- Button styles -->
<item name="buttonStyle">@Android:style/Widget.Button</item>
Cela signifie que le thème applique le style Widget.Button
aux boutons.
Ok, trouvons maintenant le style Widget.Button
.
Tous les styles par défaut Android style sont définis dans le fichier Android-sdk\platforms\Android-15\data\res\values\styles.xml
Recherchez maintenant Widget.Button
Vous trouverez quelque chose comme ceci:
<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>
La ligne intéressante est:
<item name="Android:background">@Android:drawable/btn_default</item>
Cela signifie qu'il existe un drawable appelé btn_default
défini comme arrière-plan du bouton.
Maintenant, nous devons trouver un fichier nommé btn_default.*
dans l'un des dossiers pouvant être dessinés sous Android-sdk\platforms\Android-15\data\res
.
Cela peut être une image (très peu probable) ou un fichier xml comme btn_default.xml
.
Après un peu de recherche, vous trouverez le fichier Android-sdk\platforms\Android-15\data\res\drawable\btn_default.xml
Il contient quelque chose comme ceci:
<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>
Maintenant, vous devez comprendre qu'il s'agit d'un sélecteur dessinable (l'un des nombreux types de dessinables). Ce sélecteur choisit différents arrière-plans, en fonction de l'état des boutons. Par exemple, si les boutons sont enfoncés, ils ont un arrière-plan différent.
Non regardons l'état par défaut.
<item Android:state_enabled="true" Android:drawable="@drawable/btn_default_normal" />
Il applique un drawable appelé btn_default_normal
.
Maintenant, nous devons trouver ce dessinable.
Encore une fois, nous devons trouver un fichier nommé btn_default_normal.*
dans l'un des dossiers pouvant être dessinés sous Android-sdk\platforms\Android-15\data\res
.
Il peut s'agir à nouveau d'une image ou d'un fichier xml comme btn_default_normal.xml
.
Vous trouverez plusieurs fichiers appelés "btn_default_normal.9.png" dans différents dossiers dessinables pour différentes résolutions.
:) Maintenant, vous savez que btn_default_normal.9.png
est défini comme arrière-plan du bouton.
Vous pouvez trouver des styles par défaut de Android lorsque vous déclarez en XML:
style="@Android:style/Widget.Button" - standard Button
style="@Android:style/Widget.TextView" - standard TextView
Par exemple, c'est le style du bouton par défaut:
<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>
fond du bouton par défaut:
<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>
Vous pouvez obtenir la couleur par défaut à l'aide de n'importe quel éditeur graphique: chemin d'accès au bouton par défaut NinePatch ..\Android-sdk\plates-formes\Android-13\data\res\drawable-hdpi