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.
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.
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"
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
ja .... `von Xml
Android:button="@drawable/yourdrawable"
und von Java
myRadioButton.setButtonDrawable(resourceId or Drawable);
`
Hier ist wahrscheinlich ein schneller Ansatz,
Mit zwei oben gezeigten Symbolen soll ein RadioGroup
in etwa so aussehen
RadioGroup
in horizontalRadioButton
das Symbol für Button
unter CompoundButton
an.