我的Android应用程序中有一个自定义视图,该视图使用ScaleGestureDetector.SimpleOnScaleGestureListener来检测用户何时希望通过两根手指的放大或缩小来缩放视图。在我尝试在Android 2.1设备上进行测试之前,这非常有用,因为无法找到该类,该设备在该设备上立即崩溃。

我想在2.2+上支持捏缩放,并且默认设置为

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener
{
    @Override
    public boolean onScale(ScaleGestureDetector detector)
    {
        MyGameActivity.mScaleFactor *= detector.getScaleFactor();

        // Don't let the object get too small or too large.
        MyGameActivity.mScaleFactor = Math.max(0.1f, Math.min(MyGameActivity.mScaleFactor, 1.0f));

        invalidate();
        return true;
    }
}


完全在android
private ScaleGestureDetector mScaleDetector;


如果API甚至看不到ScaleGestureDetector类,则在类的顶部声明?

看来我应该能够声明某种内部接口,例如:

public interface CustomScaleDetector
{
    public void onScale(Object o);
}


然后以某种方式...根据反射是否告诉您该类可访问而尝试扩展ScaleGestureDetector。

但是我不太确定从那里去哪里。任何指导或示例代码将不胜感激,如果不清楚我在问什么,请告诉我。

最佳答案

好吧,您可以获取ScaleGestureDetector源代码并将其放入您的项目中,使其成为您自己的类,并使用它代替系统ScaleGestureDetector,这样可以避免使用android 2.2及以下版本。

这是ScaleGestureDetector源代码:http://pastebin.com/r5V95SKe

关于java - 如何在可能的情况下使用API​​级别8类,否则不执行任何操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10082591/

10-09 06:17