如何在复选框中获取单选按钮外观?

时间:2011-04-29 08:00:07

标签: android

我只是想尝试使用不同的复选框,其外观看起来像一个单选按钮,就像一个内部带有绿灯的圆形按钮。我用Google搜索了很长时间,但没有找到解决方案,有没有办法做到这一点。

提前致谢。

4 个答案:

答案 0 :(得分:21)

更好的方法是将CheckBox的样式设置为与RadioButton的样式匹配。

  

@android:风格/ Widget.CompoundButton.RadioButton

使CheckBox看起来像这样

<CheckBox style="@android:style/Widget.CompoundButton.RadioButton" />

效果很好!我的回答是灵感by this post.

答案 1 :(得分:3)

您可以将复选框的背景(图像)(更确切地说,通过样式而不是布局,更优雅)更改为您想要的任何内容,这样您就可以拥有类似单选按钮的复选框。

请查看this short tutorial,其中会显示实现目标的步骤。

答案 2 :(得分:1)

正如apostolov所说,要使您的复选框看起来像单选按钮,您可以像这样简单地设置复选框样式

<CheckBox style="@android:style/Widget.CompoundButton.RadioButton" />

但是,如果像我一样,您希望单选按钮的强调颜色与应用程序主题的颜色不同。您可能需要采取以下方法:

在复选框上设置以下属性:

<CheckBox
      android:button="?android:attr/listChoiceIndicatorSingle"
      android:theme="@style/RadioButtonPink"
      />

第一个属性使您的复选框具有android单选按钮外观,第二个主题属性是自定义按钮的强调色和常规颜色。在styles.xml文件中,定义要使用的主题:

<style name="RadioButtonPink">
    <item name="colorAccent">@color/pink</item>
    <item name="colorControlNormal">@color/grey</item>
    <item name="colorControlActivated">@color/grey</item>
</style>

就我而言,当按钮被选中时,我想要一种粉红色的配色,否则就希望灰色。

答案 3 :(得分:0)

是的,正如rakaszeru所说,请尝试上面的选项,否则你只需通过扩展实现其onDraw()方法的复选框小部件来制作自己的自定义复选框组件