Warum verursacht das Aufrufen von setScaleX während der Pinch-Zoom-Geste ein Flimmern?

Ich versuche, einen zoombaren Container zu erstellen und habe API 14+ als Ziel

In meinem onScale (ich verwende den ScaleGestureDetector, um Pinch-Zoom zu erkennen) mache ich so etwas:

public boolean onScale (ScaleGestureDetector detector) {
   float scaleFactor = detector.getScaleFactor();
   setScaleX(getScaleX() * scaleFactor);
   setScaleY(getScaleY() * scaleFactor);

   return true;
};

Es funktioniert, aber der Zoom ist nicht flüssig. Tatsächlich flackert es merklich.

Ich habe es auch mit der Hardware-Ebene versucht und gedacht, dass die Skalierung auf der GPU stattfinden würde, sobald die Textur hochgeladen wurde, und somit superschnell wäre. Aber es machte keinen Unterschied - der Zoom ist nicht flüssig und flackert manchmal komisch.

Was mache ich falsch?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage