2

SurfaceHolderスケーリングを機能させるためにとを使用しScaleGestureDetectorています。 と の間でSurfaceHolder.lockCanvas()スケーリングsurfaceHolder.unLockCanvasAndPost(canvas)操作を実行します。

canvas.scale(mScaleFactor, mScaleFactor, scalePointX,scalePointY);

onScaleMethod では、次のことを実行します。

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

しかし、キャンバスは 2 本の指の間の中央で拡大縮小されません。コードが機能するように、scalePointX と scalePointY の値をどのように調整すればよいですか。

ありがとう

4

1 に答える 1