webentwicklung-frage-antwort-db.com.de

Ist es möglich, das Optionsfeldsymbol in einer Optionsfeldgruppe Android zu ändern?

Ich möchte dem Benutzer meiner Anwendung Android die Möglichkeit geben, einige Parameter festzulegen. Das Optionsfeld ist ideal für diese Situation. Ich mag es jedoch nicht, wenn die Optionsfelder gerendert werden.

Ist es möglich, das Optionsschaltflächensymbol zu ändern? Beispielsweise ist es möglich, ein benutzerdefiniertes Layout für jede Zeile zu erstellen und in diesem Layout auf mein eigenes Symbol zu verweisen und die Schriftart zu ändern.

94
yamspog

Ja, das ist möglich, Sie müssen Ihren eigenen Stil für Optionsfelder unter res/values ​​/ styles.xml definieren:

<?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' sollte hier eine stateful drawable sein, 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>

Wenden Sie dann das benutzerdefinierte Design entweder auf die gesamte App oder auf Aktivitäten Ihrer Wahl an.

Weitere Informationen zu Themen und Stilen finden Sie unter http://brainflush.wordpress.com/2009/03/15/understanding-Android-themes-and-styles/ das ist eine gute Anleitung.

165

Sie können ein benutzerdefiniertes Bild wie eine normale Schaltfläche in den Radiobutton einfügen. Erstellen Sie dazu eine XML-Datei in einem ziehbaren Ordner, z

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

Hier können Sie 3 verschiedene Bilder für den Radiobutton verwenden

und benutze diese Datei für RadioButton wie:

Android:button="@drawable/aus"
Android:layout_height="120dp"
Android:layout_width="wrap_content" 
30
Chirag

Die einfachere Möglichkeit, nur das Optionsfeld zu ändern, besteht darin, den Auswahlschalter für das Zeichenrecht zu setzen

<RadioButton
    ...
    Android:button="@null"
    Android:checked="false"
    Android:drawableRight="@drawable/radio_button_selector" />

Und der Selektor ist:

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

Das ist alles

10
topcbl

ja .... `von Xml

Android:button="@drawable/yourdrawable" 

und von Java

myRadioButton.setButtonDrawable(resourceId or Drawable);

`

1
shweta jariya

Hier ist wahrscheinlich ein schneller Ansatz,

enter image description here

Mit zwei oben gezeigten Symbolen soll ein RadioGroup in etwa so aussehen

enter image description here

  • ändern Sie die Ausrichtung von RadioGroup in horizontal
  • geben Sie für die Eigenschaften jedes RadioButton das Symbol für Button unter CompoundButton an.
  • passen Sie die Polsterung und Größe an,
  • und legen Sie das Background-Attribut fest, wenn es aktiviert ist.
0
kolunar