10

スイッチを使用してトラックの色を変更したいです。だから私の意見では、何も壮観ではありません。

私のスイッチのレイアウト:

<Switch
    android:id="@+id/Switch1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:track="@color/gray"
    android:textOn="@string/on"
    android:textOff="@string/off"     
    android:text="@string/musiconoff" />

そして私の色「灰色」:

<color name="gray">#666666</color>

私の問題は、スイッチが 1 ピクセルのスイッチとして表示されることです。それはほんの小さな線です。「色」行を削除すると、スイッチは正しいです(もちろん灰色はありません)。

私のせいはどこですか?

4

6 に答える 6

17

これ以外は何もうまくいきませんでした

if (isChecked) {
                    mSwtPrivacyView.getTrackDrawable().setColorFilter(ContextCompat.getColor(this, R.color.switch_track_checked_true_color), PorterDuff.Mode.SRC_IN);
                } else {
                    mSwtPrivacyView.getTrackDrawable().setColorFilter(ContextCompat.getColor(this, R.color.switch_track_checked_false_color), PorterDuff.Mode.SRC_IN);
                }
于 2016-04-20T11:33:08.600 に答える
2

次のように、グレーの色でドローアブルを作成して、res/drawable フォルダーに配置することができます。

track.xml:

<shape 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="rectangle">

     <size android:width="48dp" android:height="22dp" />
     <solid
         android:color="#666666" />
     <stroke
        android:width="2dp"
        android:color="#666666"
        android:dashWidth="2dp"
        android:dashGap="1dp" />
</shape>

ストロークに必要なサイズを追加し(必要な場合)、このドローアブルをトラック プロパティとして追加します。

これは役に立ちますか?

于 2014-10-01T10:21:31.227 に答える
-4
android:track="@android:color/darker_gray"

コードでこれを試してください

于 2014-10-01T10:13:56.833 に答える