在android中使用MotionEventCompat

时间:2012-08-22 03:05:27

标签: android ontouchevent motionevent

我正在寻找一个如何在Android中使用MotionEventCompat的示例。我正在使用API​​级别10,如果手指“悬停”或“拖动”到视图上,则不支持。我需要检测这个,最好是从视图本身。这里有一些关于我如何使用它的代码片段:

**my class:** 
 import android.support.v4.view.MotionEventCompat;
        public class GridButton extends View 

    overriding onTouchEvent:
            @Override
        public boolean onTouchEvent(MotionEvent event) {
            super.onTouchEvent(event);
            switch (event.getAction() & MotionEventCompat.ACTION_MASK) {
            case (MotionEvent.ACTION_DOWN): {
                set_active(true);
                return true;
            }
            case (MotionEventCompat.ACTION_HOVER_ENTER): {
                set_active(true);
                break;
            }
            }
            return false;
        }

我将MotionEventCompat.ACTION_MASK基于我在某处找到的示例,但它不会触发我的set_active()代码。

任何有关使用此功能的帮助将不胜感激。网上的内容很少。

1 个答案:

答案 0 :(得分:2)

当设备支持鼠标或触摸板时,会发送悬停事件。当光标悬停在视图上时,这些事件将发送到onGenericMotionEvent,而不是onTouchEvent。它们不会帮助您检测到没有触及电容式触摸屏表面的手指或者触摸到不同位置的手指然后滑过所讨论的视图。它们永远不会在API 10(Android 2.3)设备上发送。