Android 具有不同颜色的自定义单选按钮
我是android新手,尝试创建一个简单的颜色选择器 这个想法是有几个填充的圆圈显示一种颜色,选定的一个应该有一个圆圈围绕它 这听起来并不难。我用Android 具有不同颜色的自定义单选按钮,android,Android,我是android新手,尝试创建一个简单的颜色选择器 这个想法是有几个填充的圆圈显示一种颜色,选定的一个应该有一个圆圈围绕它 这听起来并不难。我用绘制圆,创建两个资源,一个只有一个填充圆,一个填充圆和一个带有实心笔划的透明圆。然后我创建了一个,并将其设置为我的的背景 这对于一种颜色来说效果很好,但是现在我希望有相同的样式,但是每个都有不同的颜色 我能想到的唯一解决方案是为每种颜色创建这个三元组的xml文件。这当然会奏效,但我觉得这太不雅观了 我试图访问按钮的背景,但似乎我只能访问,而不能访问它的
绘制圆,创建两个资源,一个只有一个填充圆,一个填充圆和一个带有实心笔划的透明圆。然后我创建了一个
,并将其设置为我的
的背景
这对于一种颜色来说效果很好,但是现在我希望有相同的样式,但是每个
都有不同的颜色
我能想到的唯一解决方案是为每种颜色创建这个三元组的xml文件。这当然会奏效,但我觉得这太不雅观了
我试图访问按钮的背景,但似乎我只能访问
,而不能访问它的子项
我还尝试创建一个FrameLayout
作为RadioButton
和ImageView
的父对象,因此RadioButton
只需要显示边框。这没有完全奏效。我可以选择一个单选按钮,但在选择另一个单选按钮时,它不会被取消选择
我想最好的解决方案是有一个背景,可以根据按钮的状态自行改变,就像
那样,但有一个更全面的方法来确定要使用哪个drawable,至少可以访问RadioButton
的标记
-属性,但我看不出如何做到这一点。查看此github回购协议
xml布局代码
<customradio.vj.com.library.CustomRadio
android:id="@+id/radio9"
android:layout_width="@dimen/thirty_two_dp"
android:layout_height="@dimen/thirty_two_dp"
android:layout_marginBottom="@dimen/eight_dp"
android:layout_marginLeft="@dimen/sixteen_dp"
android:layout_marginRight="@dimen/sixteen_dp"
android:layout_marginTop="@dimen/eight_dp"
custom:radioColor="#AA00FF"
custom:radioShape="simple_circle2" />
标题显示复选框,而在文本中您谈论单选按钮。。哪一个是打字错误?是单选按钮,对不起,我猜我的大脑有点融化了:(我用“xml文件的三元组”实现了类似的东西),对我来说,这似乎比在代码中设置资源更干净。尽管现在考虑到了这一点,更好的解决方案可能是创建一个自定义单选按钮,该按钮可以具有颜色属性。我的想法完全相同,但我只需要8种颜色,所以我决定采用这个不太好但快速的解决方案。但认真地尝试做一个自定义的RadioButton扩展RadioButton类。具有2个形状(已选定、未选定),并且在自定义类中将背景设置为未选定形状,并根据类中添加的颜色属性动态编辑形状颜色,如下所述:。另请注意,您必须根据选中的未选中状态更改背景。