У меня большая проблема.Я пытаюсь реализовать вид спидометра.я получаю информацию, как RPM ... каждые 10-100 мс от автомобиля через Bluetooth.Теперь я хочу повернуть стрелку в нужное положение.я делаю это каждый раз, когда получаю данные.
ivNadel.startAnimation(RpmAnim);
ivBoost.startAnimation(BoostAnim);
ivLoad.startAnimation(LoadAnim);
Анимации все реализованы так:
//rotate Tachonadel
Rpmcurrentdegree=Rpmcurrentdegree+Rpmdegree;
Rpmdegree=((rpms-lastrpm)*RPMtoDegree);
if(Rpmdegree!=0)
{
RpmAnim=new RotateAnimation((float)Rpmcurrentdegree, (float)Rpmdegree, ivNadel.getWidth()/2, ivNadel.getHeight()/2);
RpmAnim.setInterpolator(new LinearInterpolator());
RpmAnim.setFillEnabled(true);
RpmAnim.setFillAfter(true);
}
проблема в том, что startAnimations замедляют время реакции пользовательского интерфейсаоколо половины секунды.когда я комментирую 3 startAnimation out, он снова работает нормально.Так кто-нибудь знает, как обойти это замедление?
Я также пытался запустить анимацию, только если произошли изменения в градусах, но тогда ImageView не удерживает свою новую позицию после rotateanimation.
PLZ Help