最近我很幸运地参与了微软为即将到来的"贸易展"编写教育游戏的Surface项目.我真的可以看到Surface的协作性和自然交互如何在教育空间中是巨大的,我真的不能对"普通"机器上的触摸或多点触摸感到兴奋.
我可以看到多点触控在iPhone这样的移动机器中是多么有用,但我只是看不出为什么或者为什么我要把我的粘手指放在我的台式机或笔记本电脑上,或者什么软件会真正利用它它(特别是如果它被限制为"仅仅"2个输入.我想我用鼠标调整图片的速度比从鼠标到屏幕调整图片要快得多:)
我不明白吗?是否有人正致力于激动人心的多点触控应用程序?:)
我对带有(多)触摸屏的平板电脑的 WPF 应用程序/演示文稿有疑问。演示文稿的一张“幻灯片”由背景上的 Canvas 和一个小的 UserControl 组成。这个 UserControl 在开始时是不可见的,但是每当用户触摸屏幕时,它就会变得可见,并且如果用户移动他的手指,控件就会相应地移动(“跟随”手指,就像光标一样)。然后,当用户停止触摸屏幕时,该控件再次变得不可见。
使用 TouchDown、TouchUp 和 TouchMove 事件处理程序做到这一点并不难,如果用户仅用一根手指触摸屏幕,则效果很好。但是,当用户将一根手指放在位置 X(例如画布坐标 [100,100])并将另一根手指放在位置 Y(例如 [500, 100])时,UserControl 开始在位置 X 和 Y 之间跳转,这看起来不太好...
现在,我希望屏幕一次仅对一次触摸做出反应,我可以在操作系统(Windows 7)中使用“控制面板”->“笔和触摸”->“触摸”,通过取消选中“启用多点触摸手势和墨迹书写”来实现这一点”。
这工作得很好,完全按照我想要的那样,不幸的是它不是很方便,因为有时我需要使用多点触控,而每次我决定使用该应用程序时我无法更改它......
这就是为什么我想询问是否有任何方法可以在我需要的应用程序(或仅在 WPF UserControl 中)中以编程方式禁用多点触控。预先非常感谢您的帮助。
我注意到iOS中缺少与真正的多点触控相关的问题.我不是在谈论一根手指的触摸事件,我在谈论三根或更多手指的触摸事件.是否有关于大量触摸输入的手势处理的任何来源或文档文章?如果没有,那么你们过去使用过的任何基本方法是否有效?
(PS我的最终目标是让NSLOG一个3指向下滑动).
有没有办法让 Windows 8 多点触控事件与 PyGame 配合使用?有没有办法在 Windows 中通过 Python 访问触摸事件?
我用 C++ 编写的用于测试目的的实用程序当前使用该SendInput函数来模拟用户输入,即鼠标和键盘事件。我现在想扩展我的程序,以便它能够模拟触摸事件,这样我就可以验证测试的程序是否WM_TOUCH正确处理例如消息(尽管该消息已被弃用,但我仍然想验证它是否正确处理) 。我不需要能够将触摸事件发送到特定的HWND,只需将它们发送到桌面上的某些 X/Y 坐标就足以满足我的目的。
我考虑过使用HARDWAREINPUT结构SendInput以及直接发送WM_TOUCH(或WM_GESTURE?)消息,但在任何一种情况下,我都不清楚如何传递有关触摸事件在何处或如何执行的信息。
该WM_TOUCH文档解释了该lParam参数:
包含一个触摸输入句柄,可在调用 GetTouchInputInfo 时使用该句柄来检索有关与此消息关联的触摸点的详细信息。
...但不清楚我是否以及如何自己分配这样的“触摸输入句柄”。它总是只是当前进程地址空间中的一个普通指针吗?hSource如果是这样,我应该为结构体字段使用什么值TOUCHINPUT?
如何为应用程序启用多点触控支持,我希望两个用户触摸屏幕并同时发送应用程序的拖动事件.
我的组件上有这个代码
public boolean onTouchEvent(MotionEvent evt) {
if (evt.getY() > 612) {
east.notifyMotionEvent(evt);
south.notifyMotionEvent(evt);
} else {
weast.notifyMotionEvent(evt);
north.notifyMotionEvent(evt);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但是只发送了一个拖动事件.
我现在支持的代码是
for (int i = 0; i < evt.getPointerCount(); i++) {
float y = evt.getY(i);
if (y > 612) {
eastPad.notifyMotionEvent(evt.getX(i), evt.getY(i));
southPad.notifyMotionEvent(evt.getX(i), evt.getY(i));
} else {
weastPad.notifyMotionEvent(evt.getX(i), evt.getY(i));
northPad.notifyMotionEvent(evt.getX(i), evt.getY(i));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将UITapGestureRecognizer添加到我的应用程序中,以便我可以检测并对所有两个手指点击进行操作,但是通过任何其他用户输入.听起来微不足道,但我无法让它发挥作用.这是我的代码到目前为止,在我的主视图控制器中:
- (void) viewDidLoad {
// other init stuff
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[tapRecognizer setNumberOfTouchesRequired:2];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setCancelsTouchesInView:NO];
UIView *tapHolderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[tapHolderView setMultipleTouchEnabled:YES];
[tapHolderView addGestureRecognizer:tapRecognizer];
[self.view addSubview:tapHolderView];
[tapRecognizer release];
}
- (void) handleTap:(UITapGestureRecognizer *) sender {
if (sender.state == UIGestureRecognizerStateEnded) {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
会发生什么:双指点按将触发handleTap方法.任何其他用户输入,无论是滑动,捏合,单指点击等,都不会被任何其他视图(UIToolbar,UIWebView等)拾取.
我非常感谢您对此有任何见解,如果我对这个问题不够具体,请告诉我.
multi-touch uiviewcontroller uiview ios uitapgesturerecognizer
起初,我真的知道有不止一篇关于它的帖子,但没有帮助我修复错误/错误.我很抱歉,如果它的转发,并希望你们可以帮助我摆脱这个错误.
11-28 17:36:36.110: W/dalvikvm(8380): threadid=1: thread exiting with uncaught exception (group=0x40a331f8)
11-28 17:36:36.110: E/AndroidRuntime(8380): FATAL EXCEPTION: main
11-28 17:36:36.110: E/AndroidRuntime(8380): java.lang.IllegalArgumentException: pointerIndex out of range
11-28 17:36:36.110: E/AndroidRuntime(8380): at android.view.MotionEvent.nativeGetAxisValue(Native Method)
11-28 17:36:36.110: E/AndroidRuntime(8380): at android.view.MotionEvent.getX(MotionEvent.java:1974)
11-28 17:36:36.110: E/AndroidRuntime(8380): at com.main.TouchEventControler.processJoyPadTouchRelease(TouchEventControler.java:194)
11-28 17:36:36.110: E/AndroidRuntime(8380): at com.main.TouchEventControler.processRelease(TouchEventControler.java:237)
11-28 17:36:36.110: E/AndroidRuntime(8380): at com.main.TouchEventControler.processTouchEvent(TouchEventControler.java:88)
11-28 17:36:36.110: E/AndroidRuntime(8380): at com.main.GameField.onTouchEvent(GameField.java:142)
11-28 17:36:36.110: E/AndroidRuntime(8380): at android.view.View.dispatchTouchEvent(View.java:5546)
11-28 17:36:36.110: E/AndroidRuntime(8380): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
11-28 17:36:36.110: E/AndroidRuntime(8380): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
11-28 17:36:36.110: E/AndroidRuntime(8380): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
11-28 17:36:36.110: E/AndroidRuntime(8380): at …Run Code Online (Sandbox Code Playgroud) 我正在用JQM编写一个Web文档阅读器.我不希望我的用户在阅读时连续向左滚动,因此我的视口是:
<META NAME='viewport' CONTENT='width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=1;' />
Run Code Online (Sandbox Code Playgroud)
虽然,我知道由于不同的视觉技能,用户对字体大小的偏好可能会改变......所以,我认为在多点触控收缩动作("捏合")上缩小字体大小会很好,并且放大多点触控缩放动作的字体大小("捏合")...
可能吗?除了JQM,我还需要一些外部库吗?