如何从另一类调用无效()方法



我正在尝试在我的Android应用程序中的自定义视图上实现Pinch缩放功能。我有以下课程来完成。

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

我想在 onScale中以上面的方式调用 invalidate()方法,但这是错误的,因为这是从我的自定义视图来看。但是,我尝试通过在此处实例化自定义视图来做到这一点。

View myview = new DrawingView();
myview.invalidate();

但这也返回错误。无法实例化我的自定义视图。那么如何在此处调用无效()方法?

invalidate()是视图类方法。因此,如果您想在班级中调用它,而不是通过视图扩展,则必须传递要无效的视图。按照以下说明。

首先在ScaleListener类中使用视图类作为public DrawingView view;创建本地变量。然后在自定义视图中将您的类实例化为scale = new ScaleListener();。然后,您可以将视图作为scale.view = this;传递。现在,您可以在类中呼叫invalidate()方法,为view.invalidate();

相关内容

  • 没有找到相关文章

最新更新