我的Android應用程序中有一個自定義視圖,它使用ScaleGestureDetector.SimpleOnScaleGestureListener來檢測用戶何時想通過雙指縮放來縮放視圖或出。這很有效,直到我嘗試在Android 2.1設備上進行測試時,它會立即崩潰,因爲它找不到該類。如何在可能的情況下使用API級別8級別,否則什麼都不做
我想支持2.2+的縮放縮放,默認爲不縮放zoom < 2.1。問題是我不能申報我的:
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;
}
}
at android < 2.1。有沒有一種聰明的方式來解決這個使用java反射?我知道如何測試一個方法是否存在通過反射,但我可以測試一個類是否存在?我怎麼能有我的
private ScaleGestureDetector mScaleDetector;
在我的類的頂部聲明如果API甚至不能看到ScaleGestureDetector類?
好像我應該能夠宣佈一些有點像內部接口:
public interface CustomScaleDetector
{
public void onScale(Object o);
}
然後以某種方式... 嘗試取決於如果反射告訴你的是,類是訪問擴展ScaleGestureDetector ...
但我不確定從那裏去哪裏。任何指導或示例代碼將不勝感激,讓我知道,如果它不清楚我在問什麼。
使用* android.os.Build.VERSION.SDK_INT *常量 – 2012-04-10 03:29:10