AnimCheckBox按钮点击动画效果
,很不错的动画功能。
项目来源:https://github.com/lguipeng/AnimCheckBox本项目主要介绍:本项目主要自定义AnimCheckBox 集成View,提供选择的监听接口OnCheckedChangeListener主要由drawCircle()方法和drawHook(Canvas canvas); private void drawCircle(Canvas canvas){ initDrawStrokeCirclePaint(); canvas.drawArc(mRectF, 202, mSweepAngle, false, mPaint); initDrawAlphaStrokeCirclePaint(); canvas.drawArc(mRectF, 202, mSweepAngle - 360, false, mPaint); initDrawInnerCirclePaint(); canvas.drawArc(mInnerRectF, 0, 360, false, mPaint); }private void drawHook(Canvas canvas){
if (mHookOffset == 0) return; initDrawHookPaint(); mPath.reset(); float offset; if (mHookOffset <= (2 * size/3 - mHookStartY - mBaseLeftHookOffset)){ mPath.moveTo(mBaseLeftHookOffset, mBaseLeftHookOffset + mHookStartY); mPath.lineTo(mBaseLeftHookOffset + mHookOffset, mBaseLeftHookOffset + mHookStartY + mHookOffset); }else if (mHookOffset <= mHookSize){ mPath.moveTo(mBaseLeftHookOffset, mBaseLeftHookOffset + mHookStartY); mPath.lineTo(2 * size / 3 - mHookStartY, 2 * size / 3); mPath.lineTo(mHookOffset + mBaseLeftHookOffset, 2 * size/3 - (mHookOffset - (2 * size/3 - mHookStartY - mBaseLeftHookOffset))); }else { offset = mHookOffset - mHookSize; mPath.moveTo(mBaseLeftHookOffset + offset, mBaseLeftHookOffset + mHookStartY + offset); mPath.lineTo(2 * size / 3 - mHookStartY, 2 * size / 3); mPath.lineTo(mHookSize + mBaseLeftHookOffset + offset, 2 * size/3 - (mHookSize - (2 * size/3 - mHookStartY - mBaseLeftHookOffset) + offset)); } canvas.drawPath(mPath, mPaint); }