Androidアプリケーションのユーザーがいくつかのパラメーターを設定できるようにします。ラジオボタンは、このような状況に最適です。ただし、ラジオボタンがレンダリングされるのは好きではありません。
ラジオボタンアイコンを変更することはできますか?たとえば、行ごとにカスタムレイアウトを作成し、そのレイアウトで自分のアイコンを参照してフォントなどを変更することは可能ですか?.
はい、res/values/styles.xmlでラジオボタンの独自のスタイルを定義する必要があります。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="Android:Theme">
<item name="Android:radioButtonStyle">@style/RadioButton</item>
</style>
<style name="RadioButton" parent="@Android:style/Widget.CompoundButton.RadioButton">
<item name="Android:button">@drawable/radio</item>
</style>
</resources>
ここでの「radio」は、ステートフルなdrawable、radio.xmlである必要があります。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_checked="true" Android:state_window_focused="false"
Android:drawable="@drawable/radio_hover" />
<item Android:state_checked="false" Android:state_window_focused="false"
Android:drawable="@drawable/radio_normal" />
<item Android:state_checked="true" Android:state_pressed="true"
Android:drawable="@drawable/radio_active" />
<item Android:state_checked="false" Android:state_pressed="true"
Android:drawable="@drawable/radio_active" />
<item Android:state_checked="true" Android:state_focused="true"
Android:drawable="@drawable/radio_hover" />
<item Android:state_checked="false" Android:state_focused="true"
Android:drawable="@drawable/radio_normal_off" />
<item Android:state_checked="false" Android:drawable="@drawable/radio_normal" />
<item Android:state_checked="true" Android:drawable="@drawable/radio_hover" />
</selector>
次に、カスタムテーマをアプリ全体または選択したアクティビティに適用します。
テーマとスタイルの詳細については、 http://brainflush.wordpress.com/2009/03/15/understanding-Android-themes-and-styles/ をご覧ください。これは良いガイドです。
通常のボタンと同様に、カスタム画像をラジオボタンに配置できます。そのために、描画可能なフォルダに1つのXMLファイルを作成します
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/sub_screens_aus_hl"
Android:state_pressed="true"/>
<item Android:drawable="@drawable/sub_screens_aus"
Android:state_checked="true"/>
<item Android:drawable="@drawable/sub_screens_aus"
Android:state_focused="true" />
<item Android:drawable="@drawable/sub_screens_aus_dis" />
</selector>
ここでは、ラジオボタンに3つの異なる画像を使用できます
このファイルを次のようにRadioButtonに使用します。
Android:button="@drawable/aus"
Android:layout_height="120dp"
Android:layout_width="wrap_content"
ラジオボタンを変更するだけの簡単な方法は、単に描画可能な権利のセレクタを設定することです
<RadioButton
...
Android:button="@null"
Android:checked="false"
Android:drawableRight="@drawable/radio_button_selector" />
セレクターは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/ic_checkbox_checked" Android:state_checked="true" />
<item Android:drawable="@drawable/ic_checkbox_unchecked" Android:state_checked="false" /></selector>
それで全部です
はい.... `Xmlから
Android:button="@drawable/yourdrawable"
そしてJavaから
myRadioButton.setButtonDrawable(resourceId or Drawable);
`