标签: multi-touch

在Android WebView中启用/禁用放大

WebSettings中有一些与缩放相关的方法:

  • WebSettings.setSupportZoom
  • WebSettings.setBuiltInZoomControls

我发现他们在某些设备上的工作方式不同 例如,在我的Galaxy S上,默认情况下启用缩放功能,但在LG P500上它被禁用(现在我不知道如何启用仅捏缩放,但隐藏缩放按钮).

在P500上,当我打电话时,setBuiltInZoomControls(true)我得到这两个变体工作(多点触控和按钮).

如何在LG P500等设备上启用多点触控缩放和禁用缩放按钮?(另外,我知道HTC设备上存在同样的问题)

更新:这里几乎是解决方案的完整代码

if (ev.getAction() == MotionEvent.ACTION_DOWN ||
        ev.getAction() == MotionEvent.ACTION_POINTER_DOWN ||
        ev.getAction() == MotionEvent.ACTION_POINTER_1_DOWN ||
        ev.getAction() == MotionEvent.ACTION_POINTER_2_DOWN ||
        ev.getAction() == MotionEvent.ACTION_POINTER_3_DOWN) {
    if (multiTouchZoom && !buttonsZoom) {
        if (getPointerCount(ev) > 1) {
            getSettings().setBuiltInZoomControls(true);
            getSettings().setSupportZoom(true);
        } else {
            getSettings().setBuiltInZoomControls(false);
            getSettings().setSupportZoom(false);
        }
    }
}

if (!multiTouchZoom && buttonsZoom) {
    if (getPointerCount(ev) > 1) {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码位于我onTouchEvent重写的WebView方法中.

android zoom multi-touch android-webview

64
推荐指数
5
解决办法
12万
查看次数

Android多点触控 - 可以在模拟器中测试吗?

我最近发现Android 2.0 SDK通过MotionEvent类中的新功能支持多点触控.您可以在检索触摸属性时指定指针索引,并且在屏幕上有多个手指的情况下,应该提供多个指针.

不幸的是,我只有一个G1来测试,它运行Android 1.5而不是2.0.

有没有办法在没有2.0设备的情况下测试多点触控?在iPhone模拟器中,您可以按住选项和移位选项分别执行两个手指捏合和两个手指拖动.Android模拟器中是否有类似的功能?这是我应该期待在未来看到的东西,还是我应该吮吸它并购买新的测试手机?

android emulation multi-touch android-emulator

50
推荐指数
2
解决办法
3万
查看次数

android:ACTION_UP和ACTION_POINTER_UP之间的区别

仅从android doc我真的不明白ACTION_UP和ACTION_POINTER_UP之间的区别. http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_DOWN

基本上我想捕获一个手指从屏幕释放时的事件(即使另一个手指仍可能触摸它)

谢谢!

android multi-touch

39
推荐指数
2
解决办法
3万
查看次数

UIPinchGestureRecognizer定位两个手指之间的压缩视图

我成功地实现了捏缩放视图.但是,这种观点并没有将自己定位在我希望的位置.对于带有iPad的stackoverflowers,我希望我的视图能够像iPad Photos.app一样居中:当你捏合和缩放相册时,照片会出现在正在扩展的视图中.该视图大致以第一个手指的右上角和另一个手指的左下角手指为中心.我将其与平底锅识别器混合,但这样用户总是需要捏,然后平移以进行调整.

这里有如此图形的解释,我可以发布我的应用程序的视频,如果不清楚(没有秘密,我正在尝试重现iPad的Photos.app ...)

因此,对于手指的初始位置,开始缩放:

在此输入图像描述

这是现在的实际"缩放"框架.方块较大,但位置在手指下方

给出了起始位置

这是我想要的:相同的大小,但不同的origin.x和y:

在此输入图像描述

(对不起我糟糕的Photoshop技能^^)

multi-touch ipad ios

39
推荐指数
2
解决办法
2万
查看次数

iphone模拟器使用多点触控问题

我知道在iphone模拟器中使用多点触控输入,在使用鼠标时按住OPT键.将看到两个虚拟指尖.并移动鼠标以进行捏合.我的问题是在模拟器中,这两个指尖只会在中心一直重叠,如果我想要移动一根手指和另一根手指固定在某一点,而是将两个指尖移动到一起如何在iphone模拟器中实现这一点?在其他我希望这两个虚拟手指可以在屏幕上的任何位置重叠但不仅仅是中心

iphone multi-touch

38
推荐指数
1
解决办法
2万
查看次数

防止同时触摸多个按钮

在iOS中,无论如何都要防止同时触摸包含多个按钮(兄弟姐妹)的UIView?例如,可以在两次触摸的同时轻敲两个并排的非重叠按钮.

iphone objective-c multi-touch uikit ios

37
推荐指数
2
解决办法
1万
查看次数

如何禁用多点触控?

我的应用程序有几个触发不同事件的按钮.用户不应该按住几个按钮.无论如何,按住几个按钮会崩溃应用程序.

所以,我试图在我的应用程序中禁用多点触控.

我在所有xib文件中取消选中"Multiple Touch",并且据我所知,属性'multipleTouchEnabled'和'exclusiveTouch'控制视图是否使用多点触控.所以在我的applicationDidFinishLaunching中,我把它放在:

self.mainViewController.view.multipleTouchEnabled=NO;
self.mainViewController.view.exclusiveTouch =YES;
Run Code Online (Sandbox Code Playgroud)

在我的每个视图控制器中,我都将它放在viewDidLoad中

self.view.multipleTouchEnabled=NO;
self.view.exclusiveTouch=YES;
Run Code Online (Sandbox Code Playgroud)

但是,它仍然接受多次触摸.我可以做一些事情,比如在触发事件后禁用其他按钮,但这将是一个丑陋的黑客.当然有一种方法可以正确禁用多点触控?

iphone multi-touch uiview

35
推荐指数
4
解决办法
4万
查看次数

pointerIndex超出Android多点触控范围

我有一个触摸事件异常,导致我的游戏在平板电脑上崩溃(或更具体地说,蜂窝)...我的手机上的游戏工作正常,我还没有听说过任何没有运行Android 3.0的人或更高.这是相关的日志信息......

E/AndroidRuntime(26487): java.lang.IllegalArgumentException: pointerIndex out of range
E/AndroidRuntime(26487):    at android.view.MotionEvent.nativeGetAxisValue(Native Method)
E/AndroidRuntime(26487):    at android.view.MotionEvent.getX(MotionEvent.java:1549)
E/AndroidRuntime(26487):    at kieran.android.asteroids.GameUI.onTouchEvent(GameUI.java:665)
E/AndroidRuntime(26487):    at android.view.View.dispatchTouchEvent(View.java:4616)
E/AndroidRuntime(26487):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(26487):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
E/AndroidRuntime(26487):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(26487):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
E/AndroidRuntime(26487):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(26487):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
Run Code Online (Sandbox Code Playgroud)

......这是调用它的代码.对我来说似乎很好,但也许蜂窝中有一个尚未修复的错误?上面日志中的行号665对应于该float x = event.getX(id);行.它必须与我获取which变量的方式有关吗?但它在手机/ 2.3及更低版本上运行良好......

int action = event.getAction();
int actionCode = action & MotionEvent.ACTION_MASK;

if(actionCode == MotionEvent.ACTION_POINTER_UP || action == MotionEvent.ACTION_UP) {
    int which = action >> MotionEvent.ACTION_POINTER_ID_SHIFT;
    int id = event.getPointerId(which);
    float x = event.getX(id); …
Run Code Online (Sandbox Code Playgroud)

java android exception multi-touch

30
推荐指数
3
解决办法
4万
查看次数

禁用或阻止"活动"中的多点触控

我有几个关于活动的观点,用户想要连续快速触摸,我使用TouchListener和处理捕获这些触摸MotionEvent.ACTION_DOWN.但是,如果用户使用双手,则在用户拉出上一根手指之前,下一个视图很可能会被"触摸".在这种情况下,将MotionEvent.ACTION_MOVE针对第一个视图而不是MotionEvent.ACTION_DOWN第二个视图的期望触发a .

有没有办法解决或阻止这种行为?我已尝试使用MotionEvent.ACTION_UP并删除事件监听器来调度新事件但似乎都不起作用.

android multi-touch

29
推荐指数
4
解决办法
3万
查看次数

如何禁用 Jetpack Compose 列表/列/行中多个项目的同时点击(开箱即用的反跳?)

我在 Jetpack Compose 中实现了一列按钮。我们意识到可以一次单击多个项目(例如用多个手指),并且我们想禁用此功能。

是否有一种开箱即用的方法可以通过使用父列修饰符来禁用对子可组合项的多个同时单击?

这是我的 UI 当前状态的示例,请注意有两个选定的项目和两个未选定的项目。

在此输入图像描述

这是一些如何实现的代码(精简)

Column(
    modifier = modifier
            .fillMaxSize()
            .verticalScroll(nestedScrollParams.childScrollState),
    ) {
        viewDataList.forEachIndexed { index, viewData ->
            Row(modifier = modifier.fillMaxWidth()
                        .height(dimensionResource(id = 48.dp)
                        .background(colorResource(id = R.color.large_button_background))
                        .clickable { onClick(viewData) },
                              verticalAlignment = Alignment.CenterVertically
    ) {
        //Internal composables, etc
    }
}
Run Code Online (Sandbox Code Playgroud)

android multi-touch multi-select kotlin android-jetpack-compose

28
推荐指数
3
解决办法
2万
查看次数