[Android] カスタム スタイルとチェックボックスの使用

必要

ログインページで。ユーザーがチェックボックスをオンにするか、不正なポリシーと契約に同意するか、使用を許可しないかを選択するためのチェックボックスが必要です。

効果を達成する

選択されていない

ここに画像の説明を挿入

選ばれた

ここに画像の説明を挿入

この CheckBox のデフォルトのスタイルは正方形であることがわかっていますが、これを円に変更する場合は、最初に 2 つのパターンを準備する必要があります。


baseline_checked_circle_24.xml
次のようなファイルを作成します
ここに画像の説明を挿入

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:tint="#FFFFFF"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="@android:color/white"
        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" />
</vector>

このような別の画像を作成します
baseline_uncheck_circle_outline_24.xml
ここに画像の説明を挿入

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:tint="#382D2D"
    android:viewportWidth="24"
    android:viewportHeight="24">
    <path
        android:fillColor="@android:color/white"
        android:pathData="M16.59,7.58L10,14.17l-3.59,-3.58L5,12l5,5 8,-8zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z" />
</vector>

セレクターファイルを作成する checkbox_circle.xml

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


checkbox_color_selector.xml
円の外側の色変換であるこのセレクター ファイルを作成することもできます。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 选中状态下的颜色 -->
    <item android:color="#FFFFFF" android:state_checked="true" />
    <!-- 未选中状态下的颜色 -->
    <item android:color="#382D2D" android:state_checked="false" />
</selector>

レイアウトファイル内で

        <CheckBox
            android:id="@+id/login_cb"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/dp_20"
            android:background="#00FFFFFF"
            android:button="@drawable/checkbox_circle"
            android:buttonTint="@color/checkbox_color_selector"
            android:checked="true"
            android:paddingStart="@dimen/dp_5"
            android:text="勾选即同意"
            android:textColor="#FFFFFF"
            android:textSize="@dimen/sp_12" />

アクティビティの内部

loginCb.setOnCheckedChangeListener {
    
     _, isChecked ->
     if(isChecked){
    
    
     //选中
     }else{
    
    
     //未选中
     }
}

おすすめ

転載: blog.csdn.net/qq_43358469/article/details/131581398