发送触摸事件

时间:2016-06-23 09:03:17

标签: android mapbox-gl

在我们的应用中,我们使用Mapbox GL for Android。我们在Mapbox Github上提出了一个问题来向MarkerView显示我们的问题。

enter image description here

我们无法等待Mapbox的解决方案,因此我们必须找到解决方案。 MarkerView是地图上的ImageView:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
Resources resources = getApplicationContext().getResources();
scale = resources.getDisplayMetrics().density;
display.getSize(size);
int width = size.x;
int tempSize = width / 5;// (5: number of buttons)
float ff = (float) ((tempSize * 0.4) / (scale));// (0.4: for example)
....
newGuessButton.setTextSize(ff);
currentView.addView(newGuessButton);

我们尝试在图像上设置触摸侦听器并调用mapview.onTouchListener(motionEvent),如here但我们在onClick事件和ACTION_MOVE操作之间存在冲突。

我们希望能够点击标记或滚动/缩放地图。 目前,如果我们尝试滚动,则会调用click事件并且滚动条无法正常工作。

1 个答案:

答案 0 :(得分:0)

您可以将触摸事件发送到目标dispatchTouchEvent上调用View的其他视图:

viewHolder.imageView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(final View view, final MotionEvent motionEvent) {
        // Manage the touch event for the ImageView

        boolean managed = mapView.dispatchTouchEvent(motionEvent);
        return true;
    }
});

考虑到您可能需要管理目标View(您的mapView)是否已消耗该事件。