web-dev-qa-db-ja.com

androidのチェックボックスのチェック色を変更する方法

私は開発中ですAndroid application私はチェックボックスを使用しますが、デフォルトのチェックボックスの目盛りの色は青なので、その色を黄色に変更します。チェックボックスの目盛りに色を設定する組み込みプロパティはありますか。

24
Atul K

残念ながら、チェックボックスのチェックマークの色を変更することは単純な属性ではありません

res\drawables\フォルダーにcb_selector.xmlという名前のセレクターxmlファイルを作成します

<?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" />
    <item Android:state_checked="false" Android:drawable="@drawable/unchecked" />
</selector>

レイアウトファイルで、このファイルをチェックボックスに適用します

<CheckBox
    Android:id="@+id/cb"
    Android:text="My CheckBox"
    Android:button="@drawable/cb_selector"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"/>

unchecked.pngおよびchecked.pngdrawablesフォルダーに追加します。これらはチェックボックスのチェックされた画像とチェックされていない画像です。

34
Vaibhav Agarwal

ButtonTintを使用してドロアブルを変更せずにこれを行うことができます(API 23以降):

<CheckBox
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:buttonTint="@color/CHECKMARK_COLOR_HERE" />

または、Android /互換性の古いバージョンにはAppCombatCheckBoxを使用します。

<Android.support.v7.widget.AppCompatCheckBox 
    Android:layout_width="wrap_content" 
    Android:layout_height="wrap_content" 
    app:buttonTint="@color/CHECKMARK_COLOR_HERE" /> 
58
afathman

Android.support.v7ライブラリのAppCompatCheckBoxの属性app:buttonTintを使用できます。

<Android.support.v7.widget.AppCompatCheckBox
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        app:buttonTint="@color/colorAccent"/>

利点:API 21以下でも動作し、チェックボックスを再描画する必要はありません。

8
dabo248

API 21では、ボタンの色合い属性を使用できます

Android:buttonTint="#FFFF00"
4
Chris Stillwell

Styles.xmlに移動して、この行を追加します。

<style>
<item name="colorAccent">@Android:color/holo_green_dark</item> 
</style>

これを使用して、色を変更したり、別の色を設定したりできます

2
Yogesh Rathi

まだ答えを探している人(これは古い質問であることに気づいています)–このソリューションは、APIを心配することなくうまく機能することがわかりました: https://stackoverflow.com/a/31840734/7601437 =

要するに、チェックボックスのスタイルを作成します。 checkboxStyleをテーマとして実装します:Android:theme="@style/checkboxStyle"

0
atschpe

チェックボックスにカスタムセレクタを使用します。

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

    <item Android:drawable="@drawable/patch_pressed" Android:state_pressed="true"/>
    <item Android:drawable="@drawable/patch_normal" Android:state_enabled="true"/>
    <item Android:drawable="@drawable/patchdisable" Android:state_enabled="false"/>


</selector>

このような。

0
Ashwin S Ashok

プログラムでこれを行いたい場合は、次のようにします。

final CheckBox cb = new CheckBox(getApplicationContext());
cb.setButtonTintList(getColorStateList(R.color.colorAccent));

クリス・スティルウェルの答えは、属性を使用して色を単純に設定することはできなかったので、これを試すというアイデアを私に与えてくれました。 :)

0
Captain Sponge