Androidでスイッチの色を変更しようとしています。新しい9パッチが必要になることを理解しています。私は http://Android-holo-colors.com/ に行き、色を選択して(Switch Jelly bean)を選択しました。 Switch Jelly Beanを使用するには、 https://github.com/BoD/Android-switch-backport を使用する必要がありました。それを私のプロジェクトにインポートするには、追加する必要がありました:
<item name="switchStyle">@style/Widget.Holo.CompoundButton.Switch</item>
私のスタイルに、それからxmlで私はそのようにスイッチを使わなければなりません:
<org.jraf.Android.backport.switchwidget.Switch
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
これで、スイッチのすべてが正常に動作します。次に、Android holo color generator)から出力されたものをすべて取り、適切なファイルに入れました。
それから私は自分のxmlに追加しました:
<org.jraf.Android.backport.switchwidget.Switch
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:thumb="@drawable/apptheme_switch_inner_holo_light"
Android:track="@drawable/apptheme_switch_track_holo_light" />
しかし、それはまだ元の青色です。私はすべてを正しく行っていると思います。すべてがコンパイルされます(xml、Java)。注:インポートしていますorg.jraf.Android.backport.switchwidget.Switch
in my Java=も。アイデアはありますか?
this による(BoDのコピーと貼り付けによる直接的な回答):
Android:thumb
およびAndroid:track
ではなくapp:thumb
およびapp:track
を使用することはできません。また、xmlドキュメントのルートに以下を追加する必要があります。
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android Lollipop以上で最も簡単な方法は、
<style name="AppTheme" parent="MaterialTheme.Light">
...
<item name="Android:colorControlActivated">@color/color_switch</item>
</style>
スイッチの色を変更するには、2つの画像を使用できます
このファイルをドローアブルフォルダーに配置します
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/blue_checked" Android:state_checked="true"/>
<item Android:drawable="@drawable/blue_unchecked" Android:state_checked="false"/>
</selector>
レイアウトXMLファイルでは、次のように使用します
<CheckBox
Android:id="@+id/user_checkbox"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:button="@drawable/notif_checkbox_selector"
/>
これを試して:
switch_thumb.xml
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_enabled="false" Android:drawable="@drawable/switch_thumb_holo_light" />
<item Android:state_pressed="true" Android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item Android:state_checked="true" Android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item Android:drawable="@drawable/switch_thumb_holo_light" />
</selector>
スイッチのレイアウト:
Android:thumb="@drawable/switch_thumb"
あなたが置く必要があるかもしれません
style="@style/switchStyle"
あなたのXMLでも