我正在尝试使用我想要制作的自定义RadioButton:
所以我做了自定义drawables,响应RadioButton状态并将其用作背景。没关系。
问题在于我无法将通过android:button
属性设置的图像居中。
以下是我在布局中尝试使用它的方法。
<RadioGroup
android:id="@+id/presenter_options"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="4dp"
android:gravity="center"
>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/cluster_centered"
android:gravity="center"
android:padding="8dp"
android:background="@drawable/presenter_radiobutton_left"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="8dp"
android:background="@drawable/presenter_radiobutton_right"
android:button="@drawable/fire"
/>
</RadioGroup>
有了这个,我得到了这个结果:
我已经尝试定义一个drawable,将引力设置为居中,但没有任何改变。这是自定义drawable:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/cluster" android:gravity="center"/>
</item>
</selector>
那么,我怎样才能将按钮图像居中?
PS:我不能将每种按钮设置为背景,因为它将来会变得动态,所以背景中唯一可能是蓝色的形状。
答案 0 :(得分:2)
我的解决方案是设置android:button=@null
,然后将我想要的图像设置为android:drawableLeft
属性。所以我的RadioButton代码是这样的:
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="8dp"
android:background="@drawable/presenter_radiobutton_left"
android:button="@null"
android:drawableLeft="@drawable/fire"
/>