android onTouchEvent。不同android版本上的不同行为

android onTouchEvent。不同android版本上的不同行为,android,touch-event,Android,Touch Event,我有一些简单的活动: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override publi

我有一些简单的活动:

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);
    }
}
当我在屏幕上单击tab(只需将手指放在屏幕上,不移动)时,将调用onTouchEvent,但在android v4(4.2.2或4.4.2)和v5(5.1)上的结果不同

Android 5.1上的
事件:0//这意味着操作已停止

安卓4(4.2.2/4.4.2)
事件:0
事件:2
事件:2
事件:2
...
事件:2
事件:2
...

所以,动作下降,很多动作移动

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

已更新

  • Android 4.2.2(三星Galaxy Tab 3
    屏幕上的选项卡。结果:
    .0. (X,Y):291.4858500.48877
    2.(X,Y):289.98328498.9873
    2.(X,Y):290.4841349834665
    2.(X,Y):290.48413499.50812
    2.(X,Y):289.15115499.4878
    2.(X,Y):287.6314499.4878
    2.(X,Y):286.37064999.4878
    ...

  • 安卓5.1(华硕Nexus 7
    .0. (X,Y):528.5714813.4286
    停止。这里什么也没发生。我做了一个小小的手指移动:
    2.(X,Y):537.51135816.00323
    2.(X,Y):538.3928814.7871
    2.(X,Y):538.3928813.8571
    2.(X,Y):538.866813.4286
    2.(X,Y):539.7322813.4286
    ...


  • 至于我,Nexus7的效果更好。更符合逻辑。有趣的是,在三星Galaxy Tab 3上是否有可能获得类似的结果?顺便说一句,同样的结果也出现在三星的其他设备上:GalaxyTab 4和智能手机S4。也许这是三星设备的问题。。Hm

    可能只是触摸传感器的灵敏度不同。即使你没有故意移动手指,你也会有微小的移动和压力变化,这会导致电容的差异。不同的硬件会对电容的差异做出不同的解释,一些触摸屏会认为你做了一点小动作,而其他触摸屏则不会。物理硬件并不总是像软件一样精确

    这是预期的行为,随后的移动调用是您的手指“不确定”保持停止。

    可能是触摸驱动程序问题,您正在测试什么设备,以及移动时每个点的X和Y值是多少。