首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中以编程方式模拟多点触摸事件以进行测试

在Android中以编程方式模拟多点触摸事件以进行测试
EN

Stack Overflow用户
提问于 2013-05-18 08:57:25
回答 1查看 1.8K关注 0票数 1

我需要模拟多点触摸事件(缩放,平移等),以用于Android应用程序的仪器测试。一种方法是手动生成相应的模拟真实输入的MotionEvent序列,然后逐个分派它们。在我这样做之前,有没有一些很好的API可以做这样的模拟?我想很多人在过去都遇到过这个问题。我正在研究Robotium Solo,但它只为单指针提供触摸/拖动功能。

如果没有这样的API,解决这个问题的最好方法是什么?我正在考虑写一个函数,为每个参与的指针接受一对点(开始,结束)和持续时间,但这会将手势限制为线性指针运动。

代码语言:javascript
复制
public void twoFingerTouchEvent(
             Point from1, Point to1, int duration1, 
             Point from2, Point to2, int duration2) {

  if (from1.equals(to1) && from2.equals(to2)) { 
    // two pointer tap
    // DISPATCH_DOWN
    // DISPATCH_POINTER_DOWN
    // WAIT min(duration1, duration2)
    // DISPATCH_POINTER_UP
    // WAIT abs(duration1 - duration2)
    // DISPATCH_UP
  }
  else if (from1.equals(to1) || from2.equals(to2)) {
    // one of two pointers dragged after tap
    // DISPATCH_DOWN
    // DISPATCH_POINTER_DOWN
    // DISPATCH_MOVE for moving pointer every 3-5 pixels, account for duration
    // DISPATCH_POINTER_UP
    // DISPATCH_UP 
  }
  else {
    // two pointer drag
    // DISPATCH_DOWN
    // DISPATCH_POINTER_DOWN
    // DISPATCH_MOVE for both pointers in alternating order every 3-5 pixels
    // DISPATCH_POINTER_UP
    // DISPATCH_MOVE for pointer with longer duration
    // DISPATCH_UP 
  }
}
EN

回答 1

Stack Overflow用户

发布于 2013-05-19 01:14:41

你应该使用MotionEvent#obtain -它可以用来创建一个包含多个指针的MotionEvent。你并不局限于指针的线性运动--你可以传递一组点,然后向下执行一个动作,然后x次动作移动,最后向上动作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16619714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档