API 14で導入されたスイッチウィジェットは、デフォルトでholoテーマでスタイル設定されています。ブランディングの理由で、色や形を少し変えて、少しスタイルを変えたいです。これについてはどうすればいいですか?デフォルトのICSとSamsungのtouchwizテーマの違いを見たように、それが可能であるに違いないことを知っています。
私はいくつかの状態ドロアブルが必要だと仮定し、Switch_thumbとSwitch_trackで http://developer.Android.com/reference/Android/R.styleable.html でいくつかのスタイルを見てきました私が後かもしれないもののように見えます。私はそれらを使用する方法を知りません。
それが違いを生む場合は、ActionbarSherlockを使用しています。もちろん、API v14以降を実行しているデバイスのみがスイッチを使用できます。
背景に使用されるドロアブルと、次のようなスイッチャー部分を定義できます。
<Switch
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:thumb="@drawable/switch_thumb"
Android:track="@drawable/switch_bg" />
次に、スイッチャのドロアブルのさまざまな状態を定義するセレクタを作成する必要があります。ここで、Androidソースからのコピー:
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_enabled="false" Android:drawable="@drawable/switch_thumb_disabled_holo_light" />
<item Android:state_pressed="true" Android:drawable="@drawable/switch_thumb_pressed_holo_light" />
<item Android:state_checked="true" Android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item Android:drawable="@drawable/switch_thumb_holo_light" />
</selector>
これは、サムドロウアブル、つまり背景の上を移動する画像を定義します。スライダーに使用される4つの ninepatch イメージがあります。
非アクティブ化されたバージョン(Androidが使用しているxhdpiバージョン)
押したスライダー:
アクティブなスライダー(オン状態):
デフォルトバージョン(オフ状態):
また、次のセレクターで定義される背景には3つの異なる状態があります。
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_enabled="false" Android:drawable="@drawable/switch_bg_disabled_holo_dark" />
<item Android:state_focused="true" Android:drawable="@drawable/switch_bg_focused_holo_dark" />
<item Android:drawable="@drawable/switch_bg_holo_dark" />
</selector>
非アクティブ化されたバージョン:
フォーカスバージョン:
そしてデフォルトのバージョン:
スタイル付きスイッチを使用するには、この2つのセレクターを作成し、スイッチビューに設定してから、7つの画像を目的のスタイルに変更します。
Januszによるすばらしい詳細な返信です。しかし、答えを求めてこのページに来ている人のために、簡単な方法は http://Android-holo-colors.com/ (リンク切れ)からリンクされていますAndroid Asset Studio
すべてのツールの適切な説明は AndroidOnRocks.com (現在オフラインサイト)にあります。
ただし、理解を明確にするために、ヤヌスからの返信を読むことを強くお勧めします。このツールを使用して、本当に素早く作業を行います
さまざまな色のプロパティを設定して、マテリアルスタイルをカスタマイズできます。たとえば、カスタムアプリケーションテーマ
<style name="CustomAppTheme" parent="Theme.AppCompat">
<item name="Android:textColorPrimaryDisableOnly">#00838f</item>
<item name="colorAccent">#e91e63</item>
</style>
カスタムスイッチテーマ
<style name="MySwitch" parent="@style/Widget.AppCompat.CompoundButton.Switch">
<item name="Android:textColorPrimaryDisableOnly">#b71c1c</item>
<item name="Android:colorControlActivated">#1b5e20</item>
<item name="Android:colorForeground">#f57f17</item>
<item name="Android:textAppearance">@style/TextAppearance.AppCompat</item>
</style>
スイッチトラックのカスタマイズとサムの切り替え xml Drawableを定義することで、下の画像のようにできます。詳細については、 http://www.zoftino.com/Android-switch-button-and-custom-switch-examples
別のはるかに簡単な方法は、9パッチの代わりに図形を使用することです。すでにここで説明されています: https://stackoverflow.com/a/24725831/512011