0

我正在使用 Android Wear OS 开发一款逼真的计时手表。我已经有一个运行良好的秒针手表和一个停止计时的指针。当我点击手表时,我希望我的计时指针从零开始,但它是从实际秒开始的。

我的问题是:我如何将移位值应用于我的计时码表旋转以减少实际秒数,并且指针从 0 位置开始?

这是实际行为:

在此处输入图像描述

这是旋转小秒针的代码:

private float getSecondsRotation() {
            final float seconds =
                    (mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f);
            return seconds * 6f;
        }

有没有办法shift为该方法传递参数并从结果中折扣?

4

1 回答 1

0

我实际上并没有尝试运行此代码,但希望它能让您了解如何解决您的问题。

// True when the chronograph is running, false otherwise
private boolean isChronographRunning = false;

// The second when the chronograph is started
private float secondOffset = 0f;

// Called when the user taps on the watch face
private void startChronograph() {
    isChronographRunning = true;
    secondOffset = mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f;
}

// Called from your draw loop if(isChronographRunning)
private float getChronographRotation() {
    float currentSecond = mCalendar.get(Calendar.SECOND) + mCalendar.get(Calendar.MILLISECOND) / 1000f;
    float chronographSecond = currentSecond - secondOffset;
    return chronographSecond * 6f;
}
于 2019-05-24T15:47:16.327 回答