效果图如下:
1,通过继承RadioButton,重写onDraw(Canvas canvas)方法,实现自定义效果的的RadioButton
关键代码如下:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int cx = getWidth() / 2;
int cy = getHeight() / 2;
int wheelRadius = (int) ((1 - spaceRatio) * radius);
canvas.drawCircle(cx, cy, wheelRadius, wheelPaint); // 画内面的实心圆
if (checked) {// 当为选中状态时,画外环
canvas.drawCircle(cx, cy, radius-strokeWidth/2, strokePaint);
}
}
关键代码如下:
<CheckBox
android:id="@+id/Sunday"
style="@style/radiobutton_week_text"
android:text="@string/sunday" />
<style name="radiobutton_week_text">
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1.0</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:button">@null</item>
<item name="android:gravity">center</item>
<item name="android:lines">1</item>
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/selector_rbt_week_text</item>
<item name="android:background">@null</item>
</style>
在res/color文件夹下的selector_rbt_week_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/common_theme" android:state_checked="true" />
<item android:color="@color/common_font_white" />
</selector>
项目下载地址:http://download.csdn.net/detail/u010134293/9196409