演示效果:
原理分析图:
圆形背景;
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="200" android:exitFadeDuration="200">
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item android:state_checked="true">
<shape android:shape="oval">
<solid android:color="#881f38fd" />
</shape>
</item>
<item android:state_focused="true">
<shape android:shape="oval">
<solid android:color="#881f38fd" />
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="#881f38fd" />
</shape>
</item>
</selector>
自定义View源码:
package com.nsb.app.ui.view;
import android.animation.ValueAnimator;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
/**
* Created by Hanks on 2015/6/30.
*/
public class MaterialCheckBox extends View {