<style name="CustomRadioButton" parent="android:Widget.Holo.CompoundButton.RadioButton"> <item name="android:layout_width">@dimen/radio_item_width</item> <item name="android:layout_height">@dimen/radio_item_height</item> <item name="android:background">@drawable/radio_item</item> <item name="android:button">@null</item> <item name="android:gravity">center</item> </style>
android:button
が、デフォルトのチェックマーク(丸ポチ)。
これを @null で消して、background に自作の drawable を使う。
background の drawable には selector を利用する。
(gravity を center にしているのは text を中央にするため)
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:shape="rectangle" android:state_checked="true"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#333333" /> <solid android:color="#ccc" /> </shape> </item> <item android:shape="rectangle" android:state_checked="false"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#333333" /> <solid android:color="#eee" /> </shape> </item> </selector>button の方をカスタマイズする場合、常に left 側に描かれるよう点に注意する必要がある。
button の drawable を中央に置くことや、button の drawable で border を描画する、
などはできない。(幅と高さが完全に固定なら、shape drawable の size を指定すればできる?試してはいない)
参考: android RadioButton button drawable gravity
0 件のコメント:
コメントを投稿