安卓卡片式、数量可变自定义RadioButton
安卓卡片式、数量可变RadioButton
目标:
我们的效果图如下:
左边红框是我们的目标。我们需要实现:
1、 卡片数量是动态变化的
2、 可滑动
3、 支持卡片颜色和图片的变化
实现思路:
实现的思路比较简单,就是外层是一个scrollView,里面的基布局是一个RadioGroup。我们在activity里面动态地添加radioButton就好了。思路比较简单。但是实现起来却有很多需要注意的知识点。
功能实现:
布局
布局就是很简单的。加了scrollView从而实现了滑动功能。基布局RadioGroup实现RadioButton的单个被点击的效果。
Activity中添加RadioButton:
布局很简单,但是添加RadioButton比较麻烦。
资源文件名:
以上就是全部的代码。
这里用到的知识点是:
1、 自定义DrawableSelector和ColorSelector。
DrawableSelector:
ColorSelector:
ColorSelector也是一样!只不过这里我们定义好了selector在xml中
也就不必麻烦了(自定义DrawableSelector是因为radiobutton是动态的,图片我都不知道是什么),这里的文字的变化比较单一,就定义在了xml中。
2、 RadioButton在手动添加的时候需要给第一个设置一个id,因为这里RadioGroup在添加RadioButton第一个的时候没有赋予ID值(默认为0)。这就尴尬了,因为RadioGroup里面是通过ID来确定唯一被checked的button。不加的效果如下:
到这里,基本的东西就没有了。至于RadioButton的背景设置一个透明,一个灰色背景,黑色边框就好了。