J'utilise SurfaceHolder
et ScaleGestureDetector
pour que la mise à l'échelle fonctionne. Entre le SurfaceHolder.lockCanvas()
et le surfaceHolder.unLockCanvasAndPost(canvas)
, j'effectue une opération de mise à l'échelle.Mise à l'échelle du canevas tout en conservant le centre
canvas.scale(mScaleFactor, mScaleFactor, scalePointX,scalePointY);
Dans le onScaleMethod, j'effectue les suivantes
public boolean onScale(ScaleGestureDetector detector) {
mScaleFactor *= detector.getScaleFactor();
// Don't let the object get too small or too large.
mScaleFactor = Math.max(1.0f, Math.min(mScaleFactor, 35f));
scalePointX=(detector.getFocusX());
scalePointY=(detector.getFocusY());
Log.i("Zoom",mScaleFactor+"");
return true;
}
Mais la toile n'échelle pas au centre entre les deux fingers.How dois-je régler les valeurs de scalePointX et scalePointY pour que le code travail.
Merci