Android アプリケーションのカスタム ビューにピンチ ズーム機能を実装しようとしています。私はそれを行うために次のクラスを使用しています。
public class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
public ScaleGestureDetector mScaleDetector;
public float mScaleFactor = 1.f;
public ScaleListener(){
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
mScaleFactor *= detector.getScaleFactor();
// Don't let the object get too small or too large.
mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f));
invalidate(); //Error
return true;
}
}
invalidate()
内部で上記のようにメソッドを呼び出したいのですonScale
が、これはカスタム ビューの外部にあるため、間違っています。ただし、次のようにここでカスタムビューをインスタンス化することでそれを実行しようとしています。
View myview = new DrawingView();
myview.invalidate();
しかし、これもエラーを返します。カスタム ビューをインスタンス化できません。では、ここで invalidate() メソッドを呼び出す方法は?