我的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/