gpt4 book ai didi

java - 如何正确确定用户是否使用时间顺时针或逆时针拖动我的圆轮 slider ?

转载 作者:行者123 更新时间:2023-12-02 05:53:53 26 4
gpt4 key购买 nike

我有一个形状像时钟的自定义 View 。我有一个 slider 图像,用户可以使用它来逆时针 (CCW) 或顺时针 (CW) 滑动,以便他们可以选择时间。我的自定义 View 以 H:mm aa 格式返回数据类型 Stringtime。例如:1:34 AM

我目前能够确定 CW 或 CCW 检测,但这并不是完整的证据,因为当用户滑过凌晨 12:00 点时会出现问题。

我目前确定顺时针或逆时针运动的逻辑是:

  1. 时间转换为军事时间,以便我可以将其存储为Date对象,称为mDate
  2. 检查最后一个 timeToMil 是否小于当前 mDate.getTime()。如果小于,我认为是 CW,否则是 CCW。
  3. 将自 1970 年 1 月 1 日以来的当前毫秒数存储到变量 timeToMil 中,以便下一次迭代可以确定最后一个点在时间上是向前移动还是向后移动。

但问题是,如果用户上次访问的时间是晚上 11:00,并将 slider 移动到凌晨 1:00。按照 #2 逻辑,这将检测到它是 CCW,这是不正确的。

if (timeToMil < mDate.getTime()) {
cw = true;
} else {
cw = false;
}

我想知道是否有比这更好的方法?我已经研究它太久了,我认为它不再有成效,看到一些外部观点会有所帮助。

我正在考虑将所有分钟转换为某种弧度,但我不确定这种努力是否可行。

编辑:添加照片:

enter image description here

灰色圆圈是用户可以沿着红线顺时针或逆时针拖动的图像。向左滑动为CCW,向右滑动为CW

最佳答案

h - 小时 [1,12]m - 分钟 [0,59]

720 = 12*60 - 时针整圈的分钟

halfOfCircle = 360 = 720/2 - 时针半圈的分钟

timePrev = timeNext
timeNext = (h%12)*60+m

if (abs(timePrev-timeNext)<halfOfCircle){
if (timePrev<timeNext){
return "CW"
} else {
return "CCW"
}
} else {
if (timeNext<halfOfCircle){
return "CW"
} else {
return "CCW"
}
}

关于java - 如何正确确定用户是否使用时间顺时针或逆时针拖动我的圆轮 slider ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56028974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com