Функция поворота анимации,

Меня спросили, как получить угол поворота в анимации поворота.

RotateAnimation Получить текущий угол изображения

Моя конечная цель — отправить сигнал микроконтроллеру в соответствии с углом, заданным бегущей рулеткой.

Я проверил журнал угла поворота изображения с помощью следующего кода:

objectAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {

                    double angle  = Double.parseDouble(objectAnimator.getAnimatedValue().toString());

                    Log.d("LOG", "animation : " + 

                }
                catch (Exception e){

                }

            }
        });

//setDuration -> 360
//range -> 0~360
//setInterpolator -> LinearInterpolator

Журнал показан ниже.

D/LOG: animation : 0.0
D/LOG: animation : 0.0
D/LOG: animation : 33.0
D/LOG: animation : 49.0
D/LOG: animation : 66.0
D/LOG: animation : 83.0
D/LOG: animation : 99.0
D/LOG: animation : 133.0
D/LOG: animation : 150.0
D/LOG: animation : 166.0
D/LOG: animation : 183.0
D/LOG: animation : 216.00002
D/LOG: animation : 233.0
D/LOG: animation : 249.99998
D/LOG: animation : 266.0
D/LOG: animation : 283.0
D/LOG: animation : 316.0
D/LOG: animation : 333.0
D/LOG: animation : 350.0
D/LOG: animation : 360.0

Я не придавал вращению изображения никакого ускорения или замедления с настройкой LinearInterpolator.

Я обнаружил, что onAnimationUpdate вызывается частотой кадров анимации. (точно нет?)

Я хочу знать абсолютный угол, а не угол при обновлении анимации.

Как я могу сделать?

и есть ли другой способ сделать анимацию вращения и получить абсолютный угол?

Спасибо


person sgb    schedule 20.09.2019    source источник