在android中的模拟时钟中,确定时钟指针之间的角度已知的时间



我想从Android应用程序中的模拟时钟设置时间。为此,我重写了Analogclock.java类,并建立了Ontouchevent侦听器。我遵循此方法该公式,根据获得的坐标计算时针和分针之间的角度。现在我可以把手移到一个新的位置了。我还可以从中获取针头之间的新角度。这是相同的代码:

   case MotionEvent.ACTION_MOVE: 
        x = (int)event.getX();
        y = (int)event.getY();
        double dx = x - minuteRect.centerX();    
        double dy = -(y - minuteRect.centerY()); 
        double inRads = Math.atan2(dy,dx);      
        if (inRads < 0) 
            inRads = Math.abs(inRads);
        else
            inRads = 2*Math.PI - inRads;      
        double newDegree =  Math.toDegrees(inRads); 
        if(isMove()){
            setAngle(newDegree);
            invalidate(); 
        } 

我现在想设置移动针头的时间。有什么方法可以根据坐标或两个指针之间的角度计算时间吗?

我不知道代码,但数学并不难:

将时针的角度除以2PI,乘以12并截断,就得到了小时。将分针的角度除以2PI,乘以60并截断,就得到了分针。

示例:06:15:

  • 小时角比PI稍微大一点。(PI / 2PI) * 12 = 6
  • 微小角度为PI/2。((PI/2) / 2PI) * 60 = 15

最新更新