私は開発中ですAndroid application私はチェックボックスを使用しますが、デフォルトのチェックボックスの目盛りの色は青なので、その色を黄色に変更します。チェックボックスの目盛りに色を設定する組み込みプロパティはありますか。
残念ながら、チェックボックスのチェックマークの色を変更することは単純な属性ではありません
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.png
をdrawables
フォルダーに追加します。これらはチェックボックスのチェックされた画像とチェックされていない画像です。
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" />
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以下でも動作し、チェックボックスを再描画する必要はありません。
API 21では、ボタンの色合い属性を使用できます
Android:buttonTint="#FFFF00"
Styles.xmlに移動して、この行を追加します。
<style>
<item name="colorAccent">@Android:color/holo_green_dark</item>
</style>
これを使用して、色を変更したり、別の色を設定したりできます
まだ答えを探している人(これは古い質問であることに気づいています)–このソリューションは、APIを心配することなくうまく機能することがわかりました: https://stackoverflow.com/a/31840734/7601437 =
要するに、チェックボックスのスタイルを作成します。 checkboxStyle
をテーマとして実装します:Android:theme="@style/checkboxStyle"
チェックボックスにカスタムセレクタを使用します。
<?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>
このような。
プログラムでこれを行いたい場合は、次のようにします。
final CheckBox cb = new CheckBox(getApplicationContext());
cb.setButtonTintList(getColorStateList(R.color.colorAccent));
クリス・スティルウェルの答えは、属性を使用して色を単純に設定することはできなかったので、これを試すというアイデアを私に与えてくれました。 :)