ImageView StartAnimation极速降低了UI的速度

时间:2012-03-26 07:06:44

标签: android animation user-interface imageview rotation

我有一个大问题。我尝试实现一种速度表。我得到像RPM这样的信息...每隔10-100毫秒从汽车通过蓝牙。现在我想将转速针旋转到正确的位置。我每次获得数据时都会这样做。

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将ui的反应时间减慢了大约半秒。当我评论3 startAnimation时,它再次正常工作。 所以有人知道如何解决这种减速问题吗?

我还尝试仅在度数发生变化时启动动画,但在旋转后,ImageView不会保持新位置。

plz help

1 个答案:

答案 0 :(得分:0)

我无法直接回答您的问题,但此链接可能有所帮助

http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/

它使用绘制的自定义UI组件并使用画布而不是动画旋转针。