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
をボタンに適用することを意味します。
では、 style を見つけてみましょう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
これは、 set as button backgroundというドローアブルがあることを意味します。
btn_default.*
の下にあるドローアブル フォルダの 1 つで、名前が付けられたファイルを見つける必要がありますandroid-sdk\platforms\android-15\data\res
。
これは、画像 (ほとんどありません) または .xml のような 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>
ここで、これがセレクター ドローアブル (多くのドローアブル タイプの 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
。
これも、画像または .xml のような xml ファイルのいずれかですbtn_default_normal.xml
。
「btn_default_normal.9.png」という名前の複数のファイルが、さまざまな解像度のさまざまなドローアブル フォルダーにあります。
btn_default_normal.9.png
:)ボタンの背景として設定されていることがわかりました。