お問い合わせから久しぶりですが、同様の問題で解決に時間がかかったので、他の人につまずいてもらいたいと思います。最終的にGridLayoutクラスを拡張し、
private class ScaleGestureListener
extends ScaleGestureDetector.SimpleOnScaleGestureListener
コンストラクター内:
scaleDetector = new ScaleGestureDetector(context, new ScaleGestureListener());
ビューグループなので、on…メソッドの代わりにdispatch…をオーバーライドします。
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
scaleDetector.onTouchEvent(ev);
super.dispatchTouchEvent(ev);
return true;
}
@Override
public void dispatchDraw(Canvas canvas) {
String disp = String.valueOf(mScaleFactor);
Log.v(TAG, "dispatch draw " + disp);
canvas.save();
// i have some other stuff in here specific to my app
canvas.scale(mScaleFactor, mScaleFactor);
super.dispatchDraw(canvas);
canvas.restore();
}