我有一个形状像时钟的自定义视图。我有一个滑块图像,用户可以使用它来逆时针 (CCW) 或顺时针 (CW) 左右滑动,以便他们可以选择时间。我的自定义视图以某种格式返回给我一个time数据类型。例如:。StringH:mm aa1:34 AM
我目前能够确定 CW 或 CCW 检测,但它不是完整的证据,因为当用户滑过 12:00 AM 点时会出现问题。
我目前确定 CW 或 CCW 运动的逻辑是:
转换time成军用时间,这样我就可以将它存储为一个Date名为mDate.
检查 lasttimeToMil是否小于 current mDate.getTime()。如果它更少,我认为它是 CW,否则它是 CCW。
将自 1970 年 1 月 1 日以来的当前毫秒数存储到变量timeToMil中,以便下一次迭代可以确定最后一个点是及时向前移动还是向后移动。
但问题是,如果用户最后一次是晚上 11:00 并将滑块移动到凌晨 1:00。使用#2 逻辑,这将检测到它是不正确的 CCW。
if (timeToMil < mDate.getTime()) {
cw = true;
} else {
cw = false;
}
我想知道是否有比这更好的方法?我一直在研究它太久了,我认为它不再有成效,它会有助于看到一些外部观点。
我正在考虑将所有分钟转换为某种弧度,但我不确定这种努力是否可行。
编辑:添加照片:
灰色圆圈是用户可以沿红线顺时针或逆时针拖动的图像。向左滑动是逆时针,向右滑动是顺时针
炎炎设计
相关分类