web-dev-qa-db-ja.com

androidでチェックボックスの背景色を変更する

私は1つのアプリを開発する必要があります。ここでチェックボックスを使用する必要があります。ここでチェックボックスを選択する必要があります。デフォルトの背景色は黄色ですが、チェック済みのグラデーションを使用して背景色を変更します未チェックの状態どうすればこれを変更できますか?.

これは私の現在のコードです:

 <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" />
13
user1676640

チェックボックス(ボタン)の背景色を変更したい場合は、

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

        }
    });
12
G_S

res/drawable/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>
7
Yusyuriv

コードの使用。

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. 
         }
     }
}); 
4
Chirag

このコードを試してください

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;
            }

    });
}

}

4

テーマのcolorAccentを変更する

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

チェックボックス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" />
1
Android Boy