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?