質問:色の16進コードを含むデフォルトスタイルxmlはどこにありますか?
スタイル 'buttonStyle'とTextViews、Buttonsなどのアスペクトに影響する他のデフォルトスタイルを探しています(アスペクトのスタイルを変更しない場合)
<instalation_folder>\Android-sdk\platforms\Android-<versio>\data\res\values
と<instalation_folder>\Android-sdk\platforms\Android-<version>\data\res\colors
を検索しましたが、探しているものが実際には見つかりませんでした。
私の質問が明確であることを願っています。
回答
少しグーグルで、「buttonStyle」は実際には「Widget.Button」であることがわかりました- Styling Android With Defaults
これがどのように機能するかです:
\Android-sdk\platforms\Android-<version>\data\res\values\styles.xml
で定義された 'Widget.Button'スタイルです。背景は@Android:drawable/btn_default
に設定されます\Android-sdk\platforms\Android-<version>\data\res\drawable\btn_default.xml
は、セレクターとしてボタンの背景色を定義します。色は実際にはボタンの状態に依存します。デフォルトの色は@drawable/btn_default_normal
に設定されています\Android-sdk\platforms\Android-<version>\data\res\drawable-mdpi
にあるpng画像です少しわかりにくいですが、誰かの助けになるといいのですが...
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.*
_の下にある描画可能なフォルダーのいずれかで_Android-sdk\platforms\Android-15\data\res
_という名前のファイルを見つける必要があります。
これは、イメージ(非常にまれ)または_btn_default.xml
_などの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>
_
これがセレクターのドロアブル(多くのドロアブル型の1つ)であることを理解する必要があります。このセレクタは、ボタンの状態に基づいて異なる背景を選択します。たとえば、ボタンが押された場合、ボタンの背景は異なります。
デフォルト状態を見てみましょう。
_<item Android:state_enabled="true" Android:drawable="@drawable/btn_default_normal" />
_
_btn_default_normal
_と呼ばれるドロアブルを適用します。
次に、このドロアブルを見つける必要があります。
繰り返しますが、_btn_default_normal.*
_の下にある描画可能なフォルダーの1つで_Android-sdk\platforms\Android-15\data\res
_という名前のファイルを見つける必要があります。
これも、画像または_btn_default_normal.xml
_のようなxmlファイルのいずれかです。
さまざまな解像度のさまざまな描画可能フォルダに「btn_default_normal.9.png」という名前の複数のファイルがあります。
:)これで、_btn_default_normal.9.png
_がボタンの背景として設定されていることがわかりました。
XMLで宣言すると、Androidウィジェットのデフォルトスタイルを見つけることができます。
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\platforms\Android-13\data\res\drawable-hdpi