2012-03-26 8 views
1

私は大きな問題があります。私はスピードメーターの一種を実装しようとします。私はRPMのような情報を得る...ブルートゥース上の車から10-100ms毎に。今私は右の位置にrpm針を回転させたい。私はデータを取得するたびにこれを行います。ImageView StartAnimationはUIを極端に遅くします

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はrotateanimationの後に新しい位置を保持しません。

答えて

0

plzのヘルプ私が直接あなたの質問に答えることはできませんが、このリンクは

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

それが描かれたカスタムUIコンポーネントを使用し、キャンバスではなく、アニメーションで針を回転させるに役立つことがあります。

+0

問題は、私は与えられたイメージの針を使用しなければならないということです。この例では、パスを使用して針をビットマップに変換し、パスの代わりにビットマップを回転させます( – 5w4rley

+0

)。 – triggs

+0

うーん、うまくいくかもしれません。私は試してみるよ – 5w4rley

関連する問題