2015-10-18 2 views
2

У меня есть активность с некоторыми переключателями и чекбоксами. ATM они выглядят следующим образом:Change checkbox/radio button цвет акцента

http://3.bp.blogspot.com/-Kkm8WFslihM/VR11Kz09DDI/AAAAAAAAWnQ/IWqSYaD1TP8/s640/CheckBoxOnCheckedChangeListener2.png

Теперь я хочу, чтобы изменить этот зеленоватый цвет акцент на что-то другое. Как будет лучший способ добиться этого?

+0

http://stackoverflow.com/questions/26843098/android-appcompat-v721-0-0-change-material-checkbox-col ors –

ответ

1

Вы можете использовать OnCheckedChangeListener и собственное изображение для этого. Например:

checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

     public void onCheckedChanged(CompoundButton buttonView, 
       boolean isChecked) { 

      if (isChecked) { 

       checkbox.setButtonDrawable(R.drawable.yourImage); 
      } 

     } 
    }); 

Используйте одноцветное изображение, если хотите одноцветный фон, как зеленый.

+0

Как создать это изображение? И разве это не сложно сделать для каждого флажка? разве нет способа изменить это для всех checboxes вообще? – cyden

1

создать в вашей drawable папке, как это checkbox_selector.xml, и вам нужно два изображения normal_checkbox.png и selected_checkbox.png

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/normal_checkbox" 
      android:state_checked="false"/> 
    <item android:drawable="@drawable/selected_checkbox" 
      android:state_checked="true"/> 
    <item android:drawable="@drawable/normal_checkbox"/>  
</selector> 

и теперь изменить файл макета, где Вы заявляете CheckBox

<CheckBox 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:button="@drawable/checkbox_selector" 
android:text="My CheckBox" 
android:textColor="@color/Black" /> 

для более click