如果你有兴趣改变checkbox(按钮)的背景颜色使用
mcheckbox.setButtonDrawable(R.drawable.someotherbackground);
其中someotherbackground是drawable文件夹中的图像,您想要更改checkbox的背景
尝试如下
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); } } });
RES /绘制/ checkbox_background.xml:
在你的布局中:
如果您想使用现有的drawable:
使用代码。
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; } }); }
}
在checkboxxml中使用以下代码:
更改主题的colorAccent
尝试这个: