2016-09-15 18 views
1

私のアプリケーションでは、ラジオボタンにテキストで境界線を付けることができます。 Androidのテキスト付きのRadioButtonへのボーダー

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

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> 

をしかし、私はラジオボタンの周囲に境界線を与えるための方法を見つけることができません。

+0

使用し、親のレイアウトとあなたがラジオボタンを設定することができるの内側に描画可能な広告として境にそれを与える!!! :) –

答えて

4

でそれを使用し、あなたのRadioButton周りのレイアウトを使用して設定backgroundDrawableをカスタムボーダーと

border.xmlを作成し、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> 

にそれを入れて、 RadioButtonにバックグラウンドパラメータを直接適用します( )外部のレイアウトでそれを囲む:背景が見える

android:background="@drawable/background"

非アクティブ:

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

はまた、チェックマーク画像のそれぞれにパディングを適用します

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

有効:

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

セレクタ:

<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

境界線の上にアイコンが表示されます。 http://i.stack.imgur.com/0RRS0.png – ketan

+0

「<セレクタxmlns:android = "http://schemas.android.com/apk/res/android"> <アイテム:android:drawable = "@ drawable/radioact" android:left = "6dp" android:right = "6dp" android:state_checked = "true" /> ketan

+0

閉じるしかし、私は画像とセレクターファイルの分割が必要だと思います。更新された回答をご覧ください。 –

0

あなたLayout

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

それは全体のラジオグループに境界線を与えます。私は特定のラジオボタンのためだけにしたいです – ketan

+0

@ketanあなたのバックグラウンドドロウブルを 'RadioButton'に直接入れてください。 –

+0

そして、境界線がテキストとアイコンの上に表示されます。境界線とアイコンの間にパディングを付けることができますか? – ketan

関連する問題