Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有不同颜色的自定义单选按钮_Android - Fatal编程技术网

Android 具有不同颜色的自定义单选按钮

Android 具有不同颜色的自定义单选按钮,android,Android,我是android新手,尝试创建一个简单的颜色选择器 这个想法是有几个填充的圆圈显示一种颜色,选定的一个应该有一个圆圈围绕它 这听起来并不难。我用绘制圆,创建两个资源,一个只有一个填充圆,一个填充圆和一个带有实心笔划的透明圆。然后我创建了一个,并将其设置为我的的背景 这对于一种颜色来说效果很好,但是现在我希望有相同的样式,但是每个都有不同的颜色 我能想到的唯一解决方案是为每种颜色创建这个三元组的xml文件。这当然会奏效,但我觉得这太不雅观了 我试图访问按钮的背景,但似乎我只能访问,而不能访问它的

我是android新手,尝试创建一个简单的颜色选择器

这个想法是有几个填充的圆圈显示一种颜色,选定的一个应该有一个圆圈围绕它

这听起来并不难。我用
绘制圆,创建两个资源,一个只有一个填充圆,一个填充圆和一个带有实心笔划的透明圆。然后我创建了一个
,并将其设置为我的
的背景

这对于一种颜色来说效果很好,但是现在我希望有相同的样式,但是每个
都有不同的颜色

我能想到的唯一解决方案是为每种颜色创建这个三元组的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个形状(已选定、未选定),并且在自定义类中将背景设置为未选定形状,并根据类中添加的颜色属性动态编辑形状颜色,如下所述:。另请注意,您必须根据选中的未选中状态更改背景。