web-dev-qa-db-ja.com

Androidラジオボタングループのラジオボタンアイコンを変更することは可能ですか

Androidアプリケーションのユーザーがいくつかのパラメーターを設定できるようにします。ラジオボタンは、このような状況に最適です。ただし、ラジオボタンがレンダリングされるのは好きではありません。

ラジオボタンアイコンを変更することはできますか?たとえば、行ごとにカスタムレイアウトを作成し、そのレイアウトで自分のアイコンを参照してフォントなどを変更することは可能ですか?.

94
yamspog

はい、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/ をご覧ください。これは良いガイドです。

165

通常のボタンと同様に、カスタム画像をラジオボタンに配置できます。そのために、描画可能なフォルダに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" 
30
Chirag

ラジオボタンを変更するだけの簡単な方法は、単に描画可能な権利のセレクタを設定することです

<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>

それで全部です

10
topcbl

はい.... `Xmlから

Android:button="@drawable/yourdrawable" 

そしてJavaから

myRadioButton.setButtonDrawable(resourceId or Drawable);

`

1
shweta jariya

これはおそらく簡単なアプローチです。

enter image description here

上記の2つのアイコンを使用すると、次のようなRadioGroupが表示されます。

enter image description here

  • RadioGroupの向きを水平に変更します
  • RadioButtonの各プロパティについて、Buttonの下にあるCompoundButtonのアイコンを指定してみてください。
  • パディングとサイズを調整し、
  • オンにすると、Background属性を設定します。
0
kolunar