2015-09-02 112 views
0

我有這樣的切換:切換按鈕與自定義圖像和自定義文本顏色

<ToggleButton 
    android:id="@+id/toggle_1" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:background="@drawable/custom_toggle_bg" 
    android:gravity="bottom|center_horizontal" /> 

,這是繪圖資源:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/active" android:state_checked="true"/> 
    <item android:drawable="@drawable/default" android:state_checked="false"/> 

</selector> 

現在我想切換按鈕的文本(開和關)改變顏色切換改變狀態(只有文本,而不是整個ToggleButton的背景)。 我該怎麼辦?

回答

2

您可以添加屬性android:textColor="@drawable/color_selector"到您的<ToggleButton>

//color_selector.xml 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" color="@color/text_on" /> 
    <item android:state_checked="false" color="@color/text_off" /> 
</selector> 
2

在位置./res/color/my_selector.xml進行其他選擇,並將其設置爲ToggleButtonandroid:textColor="@color/my_selector"

例如my_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item color="@color/text_active" android:state_checked="true"/> 
    <item color="@color/text_default" android:state_checked="false"/> 

</selector> 
+0

它不能繪製文本,是「顏色」 – giozh

0

在你的代碼,使用一個OnClickListener

protected void onCreate(Bundle savedInstanceState) { 
    final ToggleButton tb = new ToggleButton(DataHandler.getContext()); 
    tb.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     if (tb.isChecked()) { 
     tb.setTextColor(Color.GREEN); 
     } 
     else { 
     tb.setTextColor(Color.RED); 
     } 
    } 
    }); 
}