web-dev-qa-db-ja.com

Androidでスイッチの色を変更

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)から出力されたものをすべて取り、適切なファイルに入れました。

  • ドローアブル(2つのセレクターファイル)
  • drawable-hdpi(9patchファイル)
  • drawable-xhdpi(9patchファイル)
  • drawable-xxhdpi(9patchファイル)

それから私は自分の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=も。アイデアはありますか?

13
EGHDK

this による(BoDのコピーと貼り付けによる直接的な回答):

  • Android:thumbおよびAndroid:trackではなくapp:thumbおよびapp:trackを使用することはできません。また、xmlドキュメントのルートに以下を追加する必要があります。

    xmlns:app="http://schemas.Android.com/apk/res-auto"

21
velis

Android Lollipop以上で最も簡単な方法は、

<style name="AppTheme" parent="MaterialTheme.Light">
    ...
    <item name="Android:colorControlActivated">@color/color_switch</item>
</style>
6
Emen

スイッチの色を変更するには、2つの画像を使用できます

  1. 緑-スイッチがオンのとき
  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"
/>
2
ROHIT PARMAR

これを試して:

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"
2
sb_269

あなたが置く必要があるかもしれません

style="@style/switchStyle"

あなたのXMLでも

1
SDJMcHattie