Изменить цвет фона флажка в android

Я должен разработать одно приложение. Мне нужно использовать checkbox.here, я должен выбрать флажок, значит, цвет фона по умолчанию – yellow.but, я хочу изменить цвет фона с помощью градиента для отмеченного и непроверенного состояния. Как я могу это изменить. пожалуйста помогите.

Это мой текущий код:

<CheckBox android:id="@+id/rempasswordcheckbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/passwordview" android:layout_y="200dp" android:paddingLeft="45dp" android:text="Remember Password!" android:textColor="#1d2328" /> 

Если вы заинтересованы, чтобы изменить цвет фона флажка (кнопки), используйте

 mcheckbox.setButtonDrawable(R.drawable.someotherbackground); 

Где someotherbackground – это изображение в выпадающей папке, на которую вы хотите изменить свой флажок

Попробуйте как ниже

  mcheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { System.out.println("checked" + isChecked); mcheckbox.setButtonDrawable(R.drawable.imageWhenActive); System.out.println("app constant is set as "+isChecked); } else { mcheckbox.setButtonDrawable(R.drawable.imageWheninactive); System.out.println("app constant is set as "+isChecked); } } }); 

Рез / рисуем / checkbox_background.xml:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_checked="true"> <shape> <gradient android:startColor="#FFFFFF" android:endColor="#000000" android:angle="-90"/> </shape> </item> <item> <shape> <gradient android:startColor="#000000" android:endColor="#FFFFFF" android:angle="-90"/> </shape> </item> </selector> 

В вашем макете:

 <CheckBox ... android:button="@drawable/checkbox_background" /> 

Если вы хотите использовать существующие чертежи:

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

Использование кода.

 checkBox.setBackgroundColor(Color.BLUE); 

Код

 CheckBox cb = (CheckBox) findViewById(R.id.CheckBox01); cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) { // TODO Auto-generated method stub if (buttonView.isChecked()) { //cb.setBackgroundColor(Color.BLUE); cb.setBackgroundColor(Color.parseColor("#FFFFFF")); } else { // Not Checked // Set Your Default Color. } } }); 

Попробуйте этот код

 public class MainActivity extends Activity { CheckBox box; boolean flag=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); box=(CheckBox)findViewById(R.id.box); box.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if(flag){ GradientDrawable d=new GradientDrawable(); d.setColor(Color.RED); box.setBackgroundDrawable(d); } else{ GradientDrawable d=new GradientDrawable(); d.setColor(Color.GREEN); box.setBackgroundDrawable(d); } flag=!flag; } }); } 

}

Используйте следующий код в своем флажке xml:

 <CheckBox android:id="@+id/rempasswordcheckbox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/passwordview" android:background="#0000FF" android:layout_y="200dp" android:paddingLeft="45dp" android:text="Remember Password!" android:textColor="#1d2328" /> 

Измените colorAccent для темы

  <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorAccent">@color/orange</item> ... </style> 

Попробуй это:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:startColor="#FF3300" android:centerColor="#FF3300" android:endColor="#FFFFFFFF" android:angle="270" /> </shape> </item> </selector>