如何使用顶视图获取按钮上的onTouch位置?

时间:2017-03-23 17:46:44

标签: android view gestureoverlayview

我有一个自定义视图,它继承自GestureOverlayView,我想记录传递给此视图的所有MotionEvent

效果很好,但是当我的动作开始于交互式布局小部件(MotionEventButton ....)时,我无法获得TextEdit

有没有办法绕过这种行为?

1 个答案:

答案 0 :(得分:0)

既然你没有提到你的任何剪切代码,我会提出2种不同的解决方案,希望对你有帮助 一种方法是将小部件传递给View方法并调用OnTouchListener

button.setOnTouchListener(new OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN: {                      
                    break;
                }
                case MotionEvent.ACTION_UP: {                       
                    break;
                }

                case MotionEvent.ACTION_CANCEL:{                      
                    break;
                }
                }
                return false;
            }
        });

另一种方法是使用自定义构造函数手动创建MotionEvent 像这样:

static public CustomMotionEvent obtain(long downTime, long eventTime, int action,
        float x, float y, int State) {
}

根据API

  

创建一个新的MotionEvent,填充基本动作的子集   值。这里没有指定的是:设备ID(总是0),压力   和大小(总是1),x和y精度(总是1)和edgeFlags   (总是0)。

API