我目前正在摆弄Android编程,但我在检测不同的触摸事件时遇到一个小问题,即正常触摸按下(按下屏幕并立即释放),长按(触摸屏幕并按住手指) )和移动(在屏幕上拖动).
我想要做的是在屏幕上有一个图像(圆圈),我可以拖动它.然后,当我按一次(短/正常按下)时,Toast会提供一些关于它的基本信息.当我长按它时,会出现一个带有列表的AlertDialog来选择不同的图像(圆形,矩形或三角形).
我使用自己的OnTouchListener创建了一个自定义视图来检测事件并在onDraw中绘制图像.OnTouchListener.onTouch是这样的:
// has a touch press started?
private boolean touchStarted = false;
// co-ordinates of image
private int x, y;
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if (action == MotionEvent.ACTION_DOWN) {
touchStarted = true;
}
else if (action == MotionEvent.ACTION_MOVE) {
// movement: cancel the touch press
touchStarted = false;
x = event.getX();
y = event.getY();
invalidate(); // request draw
}
else if (action == MotionEvent.ACTION_UP) {
if (touchStarted) {
// touch …Run Code Online (Sandbox Code Playgroud) 我想知道像SwipePad和Wave Launcher这样的应用程序是如何通过服务来检测触摸手势/事件的.这些应用程序能够检测到触摸手势,即使它不在自己的活动中.我看过整个互联网,但没有找到他们如何做到这一点.
我的主要问题是服务如何监听触摸客户/事件,就像常规活动可能会收到MotionEvents一样,即使它可能不在原始活动或上下文中.我本质上是在尝试构建一个应用程序,该应用程序将从用户处重新识别特定的触摸手势,无论哪个Activity位于顶部,并在该手势被识别时执行某些操作.触摸识别将是在后台作为服务运行的线程.
工具提示是了解应用程序非常有用的界面范例.它们是可视控件和与该控件关联的应用程序特定操作之间的映射.用户可以通过悬停鼠标指针来探索操作而无需调用它.
触摸设备使这种范例基本上不可能.这限制了应用程序的可用性,这在某些情况下变得非常神秘.
您是否知道触摸设备是否存在工具提示概念的替代品?它们在ui交互中实际上缺乏一个自由度:指针位置.如何有效地重新获得这种沟通渠道?
我正在开发iphone(iOS 4.0或更高版本)应用程序,并且在多个视图之间处理触摸问题.我有这样的视图结构
---> A superView
|
---> SubView - A
|
---> SubView - B (exactly on top of A, completely blocking A).
Run Code Online (Sandbox Code Playgroud)

基本上我有一个superView和兄弟子视图A和B. B与A具有相同的框架,因此完全隐藏了A.
现在我的要求就是这个.
这就是我为视图添加手势识别器的方法
UISwipeGestureRecognizer *leftSwipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(leftSwipe:)];
[leftSwipe setDirection:(UISwipeGestureRecognizerDirectionLeft)];
leftSwipe.delegate = self;
[bView addGestureRecognizer:leftSwipe];
[leftSwipe release];
UISwipeGestureRecognizer *rightSwipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(rightSwipe:)];
[rightSwipe setDirection:(UISwipeGestureRecognizerDirectionRight)];
rightSwipe.delegate = self;
[bView addGestureRecognizer:rightSwipe];
[rightSwipe release];
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)];
pinch.delegate = self;
[aView addGestureRecognizer:pinch];
[pinch release];
Run Code Online (Sandbox Code Playgroud)
我做了一些研究,对我UIGestureRecognizerDelegate看起来很有希望,我实现了委托方法
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer …Run Code Online (Sandbox Code Playgroud) 让我们说我正在倾听touchstart,touchmove并touchend在body元素上.
如果我错了,请告诉我,但我认为e.touches是一样的e.targetTouches?如果是这样,e.changedTouches与它们有何不同?
我的意思是,只要在一个特定时刻触摸一下,我就会取出touchevent并解析它.根据我的经验,所有三个触摸变量都是相同的.
我必须将解析后的数据发送到服务器,发送三次完全相同的字符串是非常多余的,是不是有任何方式发送它们一次并以编程方式重现服务器上的touchevent?
我有一个页面,其中有一个部分用于绘制图纸.但是,当在移动浏览器上使用时,touchmove事件(至少是垂直事件)也会滚动页面(这会降低草图体验的性能).有没有办法要么a)禁用并重新启用页面的滚动(所以我可以在每行启动时将其关闭,但在每次完成后将其重新打开),或者b)禁用默认处理touchmove事件(可能是滚动)转到绘制草图的画布(我不能完全禁用它们,因为草图使用它们)?
我已经使用jquery-mobile vmouse处理程序作为草图,如果这有所不同.
更新:在iPhone上,如果我选择要绘制的画布,或者只是在绘制之前握住我的手指,页面不会滚动,而不是因为我在页面中编码的任何内容.
只要在Chrome中触摸了应用了光标:指针属性的Div,就会出现蓝色突出显示.我们怎样才能摆脱它呢?
我尝试过以下方法:
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
Run Code Online (Sandbox Code Playgroud)
但它们不会影响按下光标时的蓝色突出显示.
我想更改二进制文件的修改时间戳.这样做的最佳方式是什么?
打开和关闭文件是一个不错的选择吗?(我需要一个解决方案,在每个平台和JVM上更改时间戳的修改).
我有一个视图,我在这个视图中应用了一个UIPanGestureRecogniser:
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAnim:)];
[sliderView addGestureRecognizer:panGesture];
[panGesture release];
Run Code Online (Sandbox Code Playgroud)
我可以很好地检测和处理手势.但是,一旦手势结束,我希望启动另一种方法.
我知道有两种方法可以进行这种检测.touchesEnded与touchesCancelled然而,我发现,touchesCancelled获取,一旦触摸成为一种姿态,即我将我的手指足以保证手势调用,并呼吁touchesEnded很少,如果有的话,被调用.
我希望能够向左/向右平移,然后在手势结束时启动另一个函数调用.我该怎么做呢?
我有一个<ul>列表,我想进行排序(拖放).如何在现代浏览器和触摸设备中使用Bootstrap 3?
我正在尝试使用jqueryui-sortable与http://touchpunch.furf.com/结合使用; 它似乎工作,但它是hacky和jQueryUI不能很好地与Bootstrap.
如何在添加触摸屏支持时避免Bootstrap/jQueryUI冲突?