Android。 ImageView 作为 RadioButton

Android. ImageView as RadioButton

我想要一些 ImageViews 作为 RadioButtons 工作。但是我不想把一个RadioButton的mini-button改成select而已;我希望这个迷你按钮消失,而 ImageView 成为整个按钮。因此,像下面这样的解决方案并不好。

<RadioButton
    android:id="@+id/myId"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/myIcon"/>

是否有小部件或其他东西可以让我将 ImageViews 用作 RadioButtons,或者我应该自己编写按钮的所有逻辑?

只需在 RadioButton 的 XML 声明的 android:background 中设置图像即可。 同时将 android:button 设置为透明:android:button="@android:color/transparent"

如果您想要不同的状态 - 为两个状态创建一个具有不同图像的选择器。

我会建议您创建自定义单选按钮。查看 Evan Bashir

answer

您可以尝试使用 按钮 属性,如下所示。

<RadioButton
android:id="@+id/myId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/myIcon"/>

或通过语法。

myRadioButton.setButtonDrawable(resourceId or Drawable);

并且您可以在通过以下 xml 文件选择 RB 时更改图像...将此文件保存在 drawable 文件夹中,并在 button 属性中或语法上调用它。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/star_down" />
<item android:state_checked="false" android:drawable="@drawable/star" />
</selector>