0

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() メソッドを呼び出す方法は?

4

1 に答える 1