在我们的应用中,我们使用Mapbox GL for Android。我们在Mapbox Github上提出了一个问题来向MarkerView显示我们的问题。
我们无法等待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事件并且滚动条无法正常工作。
答案 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)是否已消耗该事件。