MotionEvent.obtain()用于API的多点触控事件< 9

时间:2013-05-20 00:33:52

标签: android testing multi-touch

我正在尝试使用MotionEvent.obtain()模拟多点触控事件。这可以使用API​​9和API14中引入的方法来完成:

API 9:
public static MotionEvent obtain (long downTime, long eventTime, int action, int pointerCount, int[] pointerIds, PointerCoords[] pointerCoords, int metaState, float xPrecision, float yPrecision, int deviceId, int edgeFlags, int source, int flags)
API 14:
public static MotionEvent obtain (long downTime, long eventTime, int action, int pointerCount, PointerProperties[] pointerProperties, PointerCoords[] pointerCoords, int metaState, int buttonState, float xPrecision, float yPrecision, int deviceId, int edgeFlags, int source, int flags)

但是,我的应用程序需要支持API> = 7. API下面的最新方法是

API 5:
public static MotionEvent obtain (long downTime, long eventTime, int action, int pointerCount, float x, float y, float pressure, float size, int metaState, float xPrecision, float yPrecision, int deviceId, int edgeFlags)

它接受 pointerCount ,但只接受其中一个指针的坐标。所以我不知道如何使用这种方法来模拟多点触控。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:使用来自API的MotionEvent.obtain()生成表示多点触控事件的MotionEvents(即包含有关多个指针的信息)是不可能的。 9。

因此,我简单地跳过了API< 9使用@TargetApi进行多点触控测试(android.os.Build.VERSION_CODES.GINGERBREAD)