gpt4 book ai didi

安卓 onTouchEvent。不同安卓版本的不同行为

转载 作者:行者123 更新时间:2023-11-30 02:08:53 27 4
gpt4 key购买 nike

我有简单的 Activity :

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("Event: ", event.getAction() + "");
return super.onTouchEvent(event);
}
}

当我在屏幕上切换时(只需将手指放在屏幕上而不移动)onTouchEvent 被调用但在 android v4(4.2.2 或 4.4.2)和 v5(5.1)上有不同的结果。

在 Android 5.1 上:
事件:0//这意味着 ACTION_DOWN

在 Android 4 (4.2.2/4.4.2) 上:
事件:0
事件:2
事件:2
事件:2
...
事件:2
事件:2
...

所以 ACTION_DOWN 和很多 ACTION_MOVE。

我真的不明白为什么会这样。我应该覆盖一些额外的方法吗?

已更新

  1. Android 4.2.2(三星 Galaxy Tab 3)
    屏幕上的选项卡。结果:
    .0。 (X, Y): 291.4858, 500.48877
    .2. (X, Y): 289.98328, 498.9873
    .2. (X, Y): 290.48413, 498.34665
    .2. (X, Y): 290.48413, 499.50812
    .2. (X, Y): 289.15115, 499.4878
    .2. (X, Y): 287.6314, 499.4878
    .2. (X, Y): 286.37064, 499.4878
    ...

  2. Android 5.1(ASUS Nexus 7)
    .0。 (X, Y): 528.5714, 813.4286
    停止。这里什么也没有发生。我做了一个小手指移动:
    .2. (X, Y): 537.51135, 816.00323
    .2. (X, Y): 538.3928, 814.7871
    .2. (X, Y): 538.3928, 813.8571
    .2. (X, Y): 538.866, 813.4286
    .2. (X, Y): 539.7322, 813.4286
    ...

就我而言,Nexus 7 上的结果更好。更符合逻辑。有趣的是,是否有可能以某种方式在 Samsung Galaxy Tab 3 上实现类似的结果?顺便说一下,其他三星设备也有同样的结果:GalaxyTab 4 和智能手机 S4。可能是三星设备的问题..嗯

最佳答案

可能只是触摸传感器的灵敏度不同。即使您不故意移动手指,您的小 Action 和压力变化也会导调用容差异。不同的硬件会以不同的方式解释这些电容差异,一些触摸屏会认为您做了一个小 Action ,而其他触摸屏则不会。物理硬件并不总是像软件一样。

关于安卓 onTouchEvent。不同安卓版本的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com