最近在做新版本,各种UI效果都需要自定义,而自定义View点击效果问题一直困扰着我。各种找资料也没有找到自己想要的东西,可能是我关键字打的不对吧。最后在查看TextView的源码时解决了我的问题,由于源码功能太多,不易查询,特此提取记录。
UI效果
默认效果
点击效果
ClickEffectView代码
public class ClickEffectView extends View {
private ColorStateList mTextColorList = ColorStateList.valueOf(Color.GRAY);
private String mContextText;
private Drawable mBgDrawable;
private int mCurTextColor;
private Paint mTextPaint;
private Rect mRect;
public ClickEffectView(Context context) {
this(context,null);
}
public ClickEffectView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public ClickEffectView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
/*绑定StyleAble自定义属性,使ClickEffectView支持XML赋值属性值*/
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ClickEffectView);
ColorStateList color = null;
color = typedArray.getColorState