Ich habe versucht, eine Aktivitätsmethode ein Bild in einen bestimmten Winkel drehen. Die Rotation funktioniert, aber das Problem ist, dass die Methode jede Sekunde aufgerufen wird, aber nur die ersten Male rotiert. An einem bestimmten Punkt steht das Bild, das gerade animiert wird, still, obwohl die Animation mit verschiedenen Werten eingerichtet und gestartet wird! die das Bild verschieben sollen, wie es die ersten Male getan hat.Android Ansicht Rotation nicht nach ein paar setAnimation Anrufe
private void animateNeedle(final float sfAngle)
{
final View viewNeedle = findViewById(R.id.needle);
final RotateAnimation needleAnimation;
RotateAnimation anim;
anim = new RotateAnimation(0,
sfAngle,
m_nNeedleWidth/2,
m_nNeedleHeight);
anim.setDuration(200);
anim.setFillAfter(true);
viewNeedle.setAnimation(anim);
anim.setAnimationListener(new AnimationListener()
{
@Override
public void onAnimationEnd(final Animation animation)
{
viewNeedle.clearAnimation();
}
@Override
public void onAnimationRepeat(final Animation animation)
{
// TODO Auto-generated method stub
}
@Override
public void onAnimationStart(final Animation animation)
{
// TODO Auto-generated method stub
}
});
anim.start();
findViewById(android.R.id.content).postInvalidate();
}
Was mache ich falsch? Ich habe sichergestellt, dass die Funktion während der Animation nicht zweimal aufgerufen wird, aber es hilft nicht.
wo rufen Sie die Funktion aus? – LeeNeverGup
Aus einem Event, um genau zu sein, ein Audio-Samples erhalten, aber das passiert nur einmal pro Sekunde, um zu überprüfen, ob es ein thread-bezogenes Problem ist. –
Sind Sie sicher, dass 'sfAngle' bestanden immer von Null ist? –