博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AnimCheckBox按钮点击动画效果《IT蓝豹》
阅读量:7095 次
发布时间:2019-06-28

本文共 1566 字,大约阅读时间需要 5 分钟。

hot3.png

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);
    }

 

运行效果:

相关代码

转载于:https://my.oschina.net/u/2461971/blog/519747

你可能感兴趣的文章
Geek爱旅行 - 龙猫
查看>>
《NLP汉语自然语言处理原理与实践》结构图
查看>>
cache和buffer之区别
查看>>
路由协议
查看>>
实用土方之妇科男性科
查看>>
初始MyBatis
查看>>
debian下使用dig/nslookup
查看>>
135.003 智能合约后端优化和产品化
查看>>
解释器模式 Interpreter 行为型 设计模式(十九)
查看>>
K-Modes算法[聚类算法]
查看>>
Const #define
查看>>
ThinkPHP下S()函数的使用
查看>>
java实现佛洛依德(Floyd)算法关于求有向图每对顶点间的最短路径问题
查看>>
shell检测网站状态码和访问时间
查看>>
天。鬼。法
查看>>
MongoDB启用身份验证
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
5.SpringMVC
查看>>
4.Java JSON使用
查看>>