自定义View——可拖动设置时间的时钟具体实现1

本文介绍了如何实现一个自定义的Android View,该View是一个可拖动设置时间的时钟。时钟由白色圆环、黄色变动圆环和黄色圆圈组成,用户可以沿着黄色圆圈拖动来设置0~24小时的时间。文章详细讲解了时钟的各个组成部分的绘制,角度的刻画和转换,以及手势位置到角度的换算。最后,作者提到了实际实现过程中的一些挑战,并预告了后续会分享更多细节。
摘要由CSDN通过智能技术生成

博主前年的项目中,做过一个自定义的时钟,效果如图所示:
这里写图片描述
手指按住圆环上的黄色圆圈位置绕圆环拖动,圆盘中间位置显示时间,0~24h的范围,超出24点之后从0重新开始计算。
实现这样一款时钟,只能自定义View,从自定义View的流程上看比较简单,稍微复杂的是由转动角度换算时间。

1. 时钟控件分解

我们把时钟拆解成三部分:白色圆环、黄色变动圆环、、黄色圆圈、中间文字。

1.1 绘制白色圆环

白色圆环就是一个360度的圆弧

Paint paint = new Paint();
paint.setStrokeWidth(30); //设置圆环的宽度,可配置
paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);  //消除锯齿
RectF oval = new RectF(centerx - distance, centery - distance, centerx+ distance, centery + distance); 
/**
* 背景圆环
*/
paint.setColor(Color.WHITE);  //设置颜色
canvas.drawArc(oval, -90, 360, true, paint);

1.2 绘制黄色圆环

黄色圆环的角度随转动的弧度变化

paint.setColor(Color.rgb(244, 242, 10));  //设置进度环颜色
canvas.drawArc(oval, -90, angle, false, paint);  //根据进度画圆弧

angle表示需要绘制的圆环度数,显然angle在0到360之间。

1.3 绘制黄色圆圈

黄色圆圈位于黄色圆环的终点位置,以正北方向作为黄色圆环的起始位置。

paint.setColor(Color.rgb(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值