Android Xamarin:添加带颜色的编程单选按钮

Android Xamarin: Add Programmatic Radio Buttons with Color

我正在尝试构建这样的东西:

我的应用获得了一个问答数组。对于每个答案,我需要以编程方式创建一个 RadioButton(例如,在图片中,有 4 个单选按钮)。

所以我的第一个问题是,您会使用 RadioButtons 还是您认为另一种方法会做得更好?

我的第二个问题:是否可以更改每个单选按钮的颜色,或者我如何给每个 RadioButton 一点 View,我可以在其中设置背景颜色(一个有按钮,然后是带有颜色的小方块,然后是单选按钮的文本)?

也许你能帮我 :)

So my first question is, would you work with RadioButtons or do you think another workaround would do the job better?

是的,这里 RadioButton 适合这份工作。

is it possible to change the color for each radio button

是的,这是可能的。只需为 RadioButtonandroid:button 设置可绘制资源。例如:

<RadioGroup android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="vertical"
            android:layout_marginLeft="5dp">
  <RadioButton android:id="@+id/ware1"
               android:layout_height="wrap_content"
               android:layout_width="wrap_content"
               android:text="@string/Ware1"
               android:button="@drawable/gradient"
               android:paddingLeft="8dp" />
  <RadioButton android:id="@+id/ware2"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:text="@string/Ware2" />
  <RadioButton android:id="@+id/ware3"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:text="@string/Ware3" />
  <RadioButton android:id="@+id/ware4"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:text="@string/Ware4" />
</RadioGroup>

我只为第一个RadioButton创建了一个选择器,这个按钮的背景颜色是渐变的,你可以以此为例创建你的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_checked="false">
    <layer-list>
      <item android:height="25dp" android:width="25dp">
        <shape android:shape="oval">
          <gradient
              android:startColor="#E0FFCD"
              android:endColor="#42FAA1"
              android:angle="45" />
          <stroke android:width="2dp"
                  android:color="#000000" />
        </shape>
      </item>
    </layer-list>
  </item>
  <item android:state_checked="true">
    <layer-list>
      <item android:height="25dp" android:width="25dp">
        <shape android:shape="oval">
          <gradient
              android:startColor="#E0FFCD"
              android:endColor="#42FAA1"
              android:angle="45" />
          <stroke android:width="2dp"
                  android:color="#2d1717" />
        </shape>
      </item>
      <item android:height="10dp" android:width="10dp"
            android:gravity="center">
        <shape android:shape="rectangle">
          <solid android:color="#000000" />
        </shape>
      </item>
    </layer-list>
  </item>
</selector>

如果你觉得为每个按钮创建形状太麻烦,你可以使用图像资源来代替它们,反正你需要为每个RadioButton创建选择器,选择器是checkedunchecked 状态 RadioButton.