- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,在我的应用程序中,我希望上半部分的手指可以控制顶部的东西,下半部分的手指可以同时控制底部的东西。所以我尝试实现多点触控,但我似乎无法正确设置 ACTION_MOVE。当我在屏幕上移动 2 个手指时,它只会移动首先触摸屏幕一侧的对象。我想知道为什么会这样?这是我的代码:
public boolean onTouch(View v, MotionEvent event){
//needs multitouch
if(checkInGame()){
int pointerIndex = 0;
if(event.getY() < this.getMeasuredHeight() / 2){
pointerId1 = event.getPointerId(event.getActionIndex());
pointerIndex = event.findPointerIndex(pointerId1);
}else{
pointerId2 = event.getPointerId(event.getActionIndex());
pointerIndex = event.findPointerIndex(pointerId2);
}
switch(event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_MOVE:{
int numPointers = event.getPointerCount();
for (int i = 0; i < numPointers; i++){
if(event.getY(i) < this.getMeasuredHeight() /2){
Log.d("Touch","Move1");
int moveX = 0;
int moveY = 0;
moveX = (int) event.getX(i) - sX;
moveY = (int) event.getY(i) - sY;
ship1.setLoc(moveX, moveY);
sX = sX + moveX;
sY = sY + moveY;
}else{
Log.d("Touch","Move2");
int moveX = 0;
int moveY = 0;
moveX = (int) event.getX(i) - sX2;
moveY = (int) event.getY(i) - sY2;
ship2.setLoc(moveX, moveY);
sX2 = sX2 + moveX;
sY2 = sY2 + moveY;
}
return true;
}
}
case MotionEvent.ACTION_DOWN: {
if(event.getY(pointerIndex) < this.getMeasuredHeight() /2){
Log.d("Touch","Top1");
sX = (int) event.getX(pointerIndex);
sY = (int) event.getY(pointerIndex);
}else{
Log.d("Touch","Bottom1");
sX2 = (int) event.getX(pointerIndex);
sY2 = (int) event.getY(pointerIndex);
}
return true;
}
case MotionEvent.ACTION_POINTER_DOWN:{
if(event.getY(pointerIndex) < this.getMeasuredHeight() /2){
Log.d("Touch","Top2");
sX = (int) event.getX(pointerIndex);
sY = (int) event.getY(pointerIndex);
}else{
Log.d("Touch","Bottom2");
sX2 = (int) event.getX(pointerIndex);
sY2 = (int) event.getY(pointerIndex);
}
return true;
}
}
最佳答案
您的 return 语句在 for 循环内,因此它只会迭代一次。
关于java - Android 多点触控 - 具有多个指针的 ACTION_MOVE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643718/
我想创建带有滚动内容的 CardStackView,但在使用 NestedScrollView 和 onTouchListener 时遇到一些问题。 我正在使用 CardStackView,我想在 C
尽管我是 Android 的新手,但我感觉比以往任何时候都更菜鸟。我有扩展 SurfaceView 的 View ,我在那里覆盖了 onTouchEvent 并将此测试代码放入其中: if (even
我正在编写一个应用程序,该应用程序涉及使用手指或手写笔在屏幕上书写。我有那部分工作。在 ACTION_DOWN 上,开始绘制;在 ACTION_MOVE 上,添加线段;在 ACTION_UP 上,完成
我有以下代码 fragment (来自此聊天头 tutorial ),最后一个 switch case 的要点是处理 View 上的拖动,但是我无法不理解这个逻辑是如何运作的: ...
我在 opengl ES 中制作了一个带有叠加层的按钮,例如谷歌地图;我希望我的按钮在点击时显示叠加层,并在再次点击按钮时将其关闭。问题是,如果用户点击按钮并在图像周围拖动,那么叠加层仍然会关闭。有没
我编写了一个代码来在拖动按钮时移动它。我正在根据当前鼠标坐标更新按钮 X 和 Y 坐标,但是当我拖动按钮时,鼠标坐标值在低值和高值之间切换,即使我拖动得非常慢也是如此。 当我记录坐标时,值显示为: (
我正在尝试创建一个可拖动 View ,并根据从拖动 View 到放置目标 View 的距离更改放置目标 View 的 alpha。为此,我需要一种方法来持续检查拖动 View 的当前位置。我试图使用
我让 SimpleOnGestureListener 使用 MotionEvent 捕获 onLongPress,但问题是我无法读取事件位移,因为我总是收到 ACTION_DOWN 代码。如何实现?我
我发现当 CPU 达到极限时,我的动态壁纸似乎没有收到 ACTION_MOVE 事件。但是,它仍然接收 ACTION_DOWN 和 ACTION_UP 事件。 我已经建立了一个最小的 eclipse
我正在编写一个游戏,当我触摸屏幕时,一个球会跟随我的移动。我的触摸代码类似于: ... case MotionEvent.ACTION_MOVE: ballX = currentX; ballY =
我正在尝试让我绘制的所有 Sprites 都可以拖动到一个小游戏中。它应该能够触摸到任何地方, Sprite 应该移动相同的距离,手指移动。 使用以下方法,他们将在 ACTION_MOVE 事件上移动
根据 android MotionEvent 文档:在按下手势期间发生了变化(在 ACTION_DOWN 和 ACTION_UP 之间)。该运动包含最近的点,以及自上次向下或移动事件以来的任何中间点。
我有一个覆盖了 onInterceptTouchEvent() 的自定义 ViewGroup。它收到 ACTION_DOWN 但从未收到 ACTION_MOVE。据我了解,除非它返回“true”,否则
我想做一个简单的控件:一个里面有 View 的容器。如果我触摸容器并移动手指,我想移动 View 以跟随我的手指。 我应该使用哪种容器(布局)?如何做到这一点? 我不需要使用表面,而是使用简单的布局。
这是我想要的: 触摸屏幕。 继续移动手指。 如果您在移动手指的同时触摸屏幕上的任何按钮,按钮的颜色按钮的颜色变为绿色。 问题:“if”条件在第 57 行 (.java) 中不起作用 if (motio
您好,在我的应用程序中,我希望上半部分的手指可以控制顶部的东西,下半部分的手指可以同时控制底部的东西。所以我尝试实现多点触控,但我似乎无法正确设置 ACTION_MOVE。当我在屏幕上移动 2 个手指
我正在通过触摸事件围绕圆圈移动图像。我希望用户触摸图像,当用户围绕圆圈拖动该图像时,它会移动,否则不会移动。 有人可以帮忙计算一下如何检查手指是否沿着圆圈移动并相应地移动图像。 谢谢。 更新: 我正在
在 Recycler View 中左右滑动列表项时,两者中哪一个更适合使用?目前我的代码位于 MotionEvent.Action_move 中,我无法弄清楚很多事情。 运动一点也不流畅。非常波涛汹涌
我想在 ACTION_MOVE 的触摸事件上缩放 View 。 所有位图都是正方形格式。 (point1=上+左,point2=上+右,point3=下+左,point4=下+右)我得到了全部四分。当
我有一个键盘 View ,当手指离开键盘 View 时,我需要跟踪 ACTION_MOVE。问题是,一旦它超出范围,它就会停止报告正确的 Y 值,并在我的手指位于键盘 View 上方时继续报告最后一个
我是一名优秀的程序员,十分优秀!