2016-09-15 3 views
1

In meiner Anwendung möchte ich Grenze zu meinem Radio Button mit Text geben.Grenze zu RadioButton mit Text in Android

enter image description here

<RadioButton 
    android:id="@+id/radioAndroid" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:button="@drawable/inout_radio_button" 
    android:checked="true" 
    android:gravity="center" 
    android:padding="5dp" 
    android:layoutDirection="rtl" 
    android:layout_marginRight="@dimen/margin_20dp" 
    android:layout_marginLeft="@dimen/margin_20dp" 
    android:text="1" 
    android:textColor="@color/color_radio_text" /> 

<RadioButton 
    android:id="@+id/radioiPhone" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:button="@drawable/inout_radio_button" 
    android:gravity="center" 
    android:padding="5dp" 
    android:layoutDirection="rtl" 
    android:layout_marginRight="@dimen/margin_20dp" 
    android:layout_marginLeft="@dimen/margin_20dp" 
    android:text="2" 
    android:textColor="@color/color_radio_text" /> 

I Symbol wie unten gesetzt haben:

inout_radio_button.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:drawable="@drawable/radioact" ></item> 
    <item android:state_checked="false" android:drawable="@drawable/radio" /> 
</selector> 

Aber, ich kann um Radio-Button finden nicht Art und Weise Grenze zu geben.

+0

Verwenden Eltern Layout und geben Sie es im Inneren, die als ziehbar Anzeige an grenzen Sie Radioknopf einstellen !!! :) –

Antwort

4

Wenden Sie den Hintergrundparameter direkt auf RadioButton an (keine Notwendigkeit für umgeben Sie es mit externen Layout):

android:background="@drawable/background"

Wo der Hintergrund wie folgt aussieht:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item> 
     <shape 
      android:shape="rectangle"> 
      <stroke 
       android:width="1px" 
       android:color="@android:color/black"/> 
      <corners android:radius="5dp"/> 
     </shape> 
    </item> 
</layer-list> 

Auch gelten die Polsterung an den jeweils Häkchen Bilder:

Inaktiv:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item 
      android:drawable="@drawable/radio" 
      android:left="6dp" 
      android:right="6dp"/> 
</layer-list> 

Aktiv:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item 
      android:drawable="@drawable/radioact" 
      android:left="6dp" 
      android:right="6dp"/> 
</layer-list> 

Und Selektor:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/active" android:state_checked="true"/> 
    <item android:drawable="@drawable/inactive" android:state_checked="false"/> 
</selector> 
+0

Grenze wird über dem Symbol angezeigt. http://i.stack.imgur.com/0RRS0.png – ketan

+0

Sie meinen etwas wie: ' < Artikel Android: Drawable = "@ Drawable/Radioact" Android: Links = "6dp" Androide: state_checked = "True" /> ' – ketan

+0

Schließen. Aber ich denke, die Aufteilung von Bildern und Selektor-Datei wird benötigt. Siehe aktualisierte Antwort. –

0

ein Layout um Ihre RadioButton verwenden und ein backgroundDrawable mit einem benutzerdefinierten Rahmen

border.xml erstellen und es in drawable

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <stroke 
     android:width="1dip" 
     android:color="@android:color/black" /> 
    <corners android:radius="10dp"/> 
</shape> 

und dann verwenden, in Ihrem Layout

<RelativeLayout 
    android:background="@drawable/border"> 
    // your radiogroup 
</RelativeLayout> 
+0

Es gibt Grenze ganze Radiogruppe. Ich möchte nur für bestimmte Radio-Taste – ketan

+0

@Ketan Nun, dann setzen Sie Ihren Hintergrund direkt in Ihrem 'RadioButton' –

+0

Zeichen zeichnen dann Grenze wird über dem Text und Symbol angezeigt. Kann ich ein Padding zwischen Rahmen und Symbol geben – ketan