1

水平方向の等しいスペースに 2 つのラジオ ボタンを描画する必要があるアプリケーションを作成しています。両方のラジオボタンにandroid:layout_weight="1"プロパティを設定することで達成しました。

次に、カスタム ドローアブル ボタンを中央に表示し、次のようにそのドローアブル内にテキストを配置する必要があります。

ここに画像の説明を入力

ここでは、draw ドローアブルとテキストの両方の動作が動的です。

センターで両方を達成する方法はありますか?

4

1 に答える 1

1

次のコードを試して、目的の出力を実現してください。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:orientation="horizontal">

   <LinearLayout
       android:orientation="horizontal"
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:gravity="center">

       <RadioButton
           android:id="@+id/radioButton"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:background="@drawable/rd_bg"
           android:button="@null"
           android:gravity="center"
           android:text="15"/>
   </LinearLayout>

   <LinearLayout
       android:orientation="horizontal"
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:gravity="center">

       <RadioButton
           android:id="@+id/radioButton2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:button="@null"
           android:background="@drawable/rd_bg"
           android:gravity="center"
           android:text="30"/>
   </LinearLayout>
</LinearLayout>

以下は、drawable duration_selector のコードです

<?xml version="1.0" encoding="utf-8"?>

 <selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_checked="true"
      android:state_focused="true">
    <shape android:shape="oval">
        <solid android:color="@color/login_bg"/>
        <size
            android:width="50dp"
            android:height="50dp"/>
    </shape>
</item>

<item
    android:state_checked="false"
    android:state_focused="true">
    <shape android:shape="oval">
        <solid android:color="@color/login_bg"/>
        <size
            android:width="50dp"
            android:height="50dp"/>
    </shape>
</item>

<item
    android:state_checked="true">
    <shape android:shape="oval">
        <solid android:color="@color/login_bg"/>
        <size
            android:width="50dp"
            android:height="50dp"/>
    </shape>
</item>

<item
    android:state_checked="false">
    <shape android:shape="oval">
        <solid android:color="@android:color/transparent"/>
        <stroke android:color="@color/login_bg"
                android:width="1dp"/>
        <size
            android:width="50dp"
            android:height="50dp"/>
    </shape>
</item>

@color/login_bg は、使用したいカラーコードです。

于 2014-11-03T08:28:32.323 に答える