过多的触摸事件会降低Android应用的速度

时间:2010-02-26 23:13:32

标签: java android programming-languages

我正在编写一款需要接收触摸事件的Android游戏。我的问题是,每当用户在屏幕上拖动他们的手指时,就会有很多触摸事件被发送到触摸事件处理程序(我认为它作为一个单独的线程运行),我的帧速率急剧下降!我可以限制每秒处理的触摸事件数量的最佳方法是什么?

例如,如果我的游戏以60 fps运行,我真的不需要每秒处理超过1次触摸事件。我是否可以这样做,不会丢失任何信息(即关于用户最后触摸屏幕的位置的重要信息)?

2 个答案:

答案 0 :(得分:3)

我的猜测是,这不是触摸事件,而是它们的处理。确保您只是处理所需的事件类型(即向下或移动)而忽略其他事件。此外,如果它不比存储时间大1秒,您可能希望存储一个时间并提前退出事件。

public boolean onTouchEvent(MotionEvent event) {
    float x = event.getX();
    float y = event.getY();

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:

答案 1 :(得分:0)

请参阅this page上的处理事件。即使您没有使用GLSurfaceView,它仍然可能适用。

我认为你应该能够每秒至少处理50次touchEvents,而不会降低帧速率,至少在具有图形加速功能的手机上(不要在模拟器上测试);

您不想做的是出于任何原因阻止渲染线程。