2012-03-26 5 views
1

Ich habe ein großes Problem. Ich versuche eine Art Tachometer zu implementieren. Ich bekomme die Informationen wie RPM ... alle 10-100ms vom Auto über Bluetooth. jetzt möchte ich die rpm nadel in die richtige position drehen. Ich mache das jedes Mal, wenn ich Daten bekomme.ImageView StartAnimation verlangsamt die Benutzeroberfläche extrem

ivNadel.startAnimation(RpmAnim); 
ivBoost.startAnimation(BoostAnim); 
ivLoad.startAnimation(LoadAnim); 

die Animationen sind alle wie folgt umgesetzt:

//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); 
} 

das Problem ist, dass die startAnimations die Reaktionszeit des ui verlangsamen um etwa eine halbe Sekunde. Wenn ich die 3 StartAnimation kommentieren, funktioniert es wieder gut. also weiß jemand einen Weg, wie man um diesen langsamen arbeiten?

Ich habe auch versucht, die Animation nur zu starten, wenn es eine Änderung in den Graden gab, aber dann hält ImageView nicht seine neue Position nach der Rotationsanimation.

plz help

Antwort

0

Ich kann Ihre Frage nicht direkt beantworten, aber dieser Link

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

Es verwendet eine benutzerdefinierte UI-Komponente gezogen und dreht sich eine Nadel mit einer Leinwand statt Animationen helfen können.

+0

Das Problem ist, dass ich eine gegebene Bildnadel verwenden muss. In diesem Beispiel verwenden sie einen Pfad – 5w4rley

+0

konvertieren Sie die Nadel in eine Bitmap und drehen Sie die Bitmap anstelle des Pfades. – triggs

+0

hmm könnte funktionieren. Ich werde es versuchen – 5w4rley

Verwandte Themen