画像を用意する
まずチェックボックスの4つの状態を表す画像を用意します。画像はres/drawable-nodpiに配置します。
- チェックONかつ選択されていない状態の画像 [checkbox_checked]
- チェックONかつ選択されている状態の画像 [checkbox_checked_selected]
- チェックOFFかつ選択されていない状態の画像 [checkbox_unchecked]
- チェックOFFかつ選択されている状態の画像 [checkbox_unchecked_selected]
画像を定義する
res/drawableフォルダに「custom_checkbox.xml」を作成します。<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- チェックON かつ 選択されている状態 --> <item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/checkbox_checked_selected" /> <!-- チェックON かつ 選択されていない状態--> <item android:state_checked="true" android:drawable="@drawable/checkbox_checked" /> <!-- チェックOFF かつ 選択されている状態--> <item android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/checkbox_unchecked_selected" /> <!-- チェックOFF かつ 選択されていない状態--> <item android:state_checked="false" android:drawable="@drawable/checkbox_unchecked" /> </selector>
styleを定義する
res/values/styles.xmlを編集し、CheckBoxに設定するスタイルを追記します。<resources> <style name="CustomCheckBox" parent="android:Widget.CompoundButton.CheckBox"> <item name="android:button">@drawable/custom_checkbox</item> </style> </resources>
CheckBoxにStyleを設定する
res/layout/activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <CheckBox android:id="@+id/CheckBox03" style="@style/CustomCheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CheckBox" /> <CheckBox android:id="@+id/CheckBox02" style="@style/CustomCheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="CheckBox" /> </LinearLayout>
実行してみた
ハイ。ちゃんとできました。そしてハマった。
で、以前コチラ「Android GridView CheckBox付きの画像を表示」で作成したチェックボックスに適用してみたのですよ。私はCheckBoxを画像の右上に配置したいのに、これ以上ガンとして動きません。
レイアウトをいじり倒しても動かないし・・・結構ハマりました・・・
実はCheckBox画像の右横にもう一つ画像があるのですよ。
次回はこの画像をどうにかしたいと思います。
0 件のコメント:
コメントを投稿