2014-10-01 48 views
4

我想使用開關並更改其軌道顏色。所以在我看來沒有什麼特別的。開關軌道顏色

我的開關佈局:

<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個像素的開關。這只是一條小線。如果我刪除「顏色」線,開關是正確的(當然沒有灰色)。

我的錯在哪裏?

+0

使用我的答案在Android:跟蹤= 「@安卓:彩色/ darker_gray」 我認爲,您的@ color/gray – 2014-10-01 10:15:10

+0

存在問題,請不要忘記給我投票 – 2014-10-01 10:15:31

+0

您能否接受@ Sector11的回答,因爲它只是在任何情況下都能正常工作。 – TapanHP 2017-01-09 07:53:44

回答

9

沒有什麼工作對我來說,除了這個

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); 
       } 
+1

這對我很有幫助。謝謝@ sector11 – TapanHP 2017-01-09 07:52:02

-2
android:track="@android:color/darker_gray" 

在你的代碼試試這個

+0

沒有抱歉。不改變任何東西 – Billabong 2014-10-01 10:18:10

+0

好的我正在檢查 – 2014-10-01 10:18:40

+0

你的顏色名稱和訪問顏色不一樣 – 2014-10-01 10:20:04

2

你可能想建立一個可繪製與你的灰色,像並將其放置在res /文件夾繪製:

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> 

添加任何您想要的筆畫大小(如果需要),並將該drawable添加爲軌道屬性。

這有幫助嗎?

+0

嘗試過它並且不起作用... – Billabong 2014-10-01 10:53:11

+0

我剛更新了我的答案。我試了一下,它的工作原理。它也應該爲你工作。抱歉耽擱了。 – Mike 2014-10-17 22:18:14

0

試試這個改變開關的軌道顏色

android:track="@null" 
android:background="@drawable/img_setings_toggle_on"