Android自定义view-仿华为运动健康手势移动控件

       最近买了个华为手环,准备跑步用的,没想到附近没有像样的跑步场所,只能作罢!无意间看到睡眠监测的页面,有个手势滑动的控件,让人觉得滑的很舒服,进而产生了兴趣,萌发撸出来的想法

       先从简单的来,首先绘制跟随手势移动的小圆,这个比较简单 

canvas.drawCircle(circleCenterX, circleCenterY, circleRadius, circlePaint);
复制代码

       然后绘制跟随小圆移动的曲线以及曲线所在上面白色部分,这里需要使用到贝塞尔曲线进行曲线的绘制,一开始使用的是二阶的绘制方法,发现效果不好,然后改用的分成两段三阶贝塞尔曲线的绘制方法(看下图),效果就圆润多了。这里附上贝塞尔曲线传送门

private void drawLine(Canvas canvas) {    
    linePath.reset();    
    linePath.moveTo(0, circleCenterY);    
    linePath.lineTo(circleCenterX - circleRadius - 60, circleCenterY);    
    linePath.cubicTo(circleCenterX - circleRadius, circleCenterY, circleCenterX - circleRadius - 5            , circleCenterY - circleRadius - 10, circleCenterX, circleCenterY - circleRadius - 10);    
    linePath.cubicTo(circleCenterX + circleRadius + 5, circleCenterY - circleRadius - 10            , circleCenterX + circleRadius, circleCenterY, circleCenterX + circleRadius + 60, circleCenterY);
    linePath.lineTo(viewWidth, circleCenterY);    
    linePath.lineTo(viewWidth, 0);    
    linePath.lineTo(0, 0);    
    linePath.close();    
    canvas.drawPath(linePath, cruveLinePaint);
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享