Меня спросили, как получить угол поворота в анимации вращения.
RotateAnimation Get Текущий угол изображения
Моя конечная цель - отправить сигнал намикроконтроллер в соответствии с углом, установленным бегущей рулеткой.
Я проверил журнал угла поворота изображения с помощью следующего кода:
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 вызывается по частоте кадров анимации.(верно? нет?)
Я хочу знать абсолютный угол, а не угол при обновлении анимации.
Как это сделать?
и есть ли другие?способ сделать анимацию поворота и получить абсолютный угол?
Спасибо