Mapsforge 重写:长按地图上的上下文菜单

Posted

技术标签:

【中文标题】Mapsforge 重写:长按地图上的上下文菜单【英文标题】:Mapsforge rewrite : Context menu on longpress on Map 【发布时间】:2013-11-30 18:33:43 【问题描述】:

我正在使用 mapsforge 库在我的应用程序中使用地图。我需要启动上下文菜单并返回地图坐标。这是我尝试过的。在我的布局中,我在地图视图下方设置了一个隐藏按钮,用于侦听长按。

<LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical" >

        <org.mapsforge.map.android.view.MapView
            android:id="@+id/offlinemapview"
            android:layout_
            android:layout_ />

        <Button
            android:id="@+id/mapview_btn_offline"
            android:layout_
            android:layout_ />
    </LinearLayout>

然后我将这个按钮注册为上下文菜单并膨胀上下文菜单。

mapb = (Button) findViewById(R.id.mapview_btn_offline);
registerForContextMenu(mapb);

  @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) 
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.map_menu, menu);
    

但是当我运行应用程序时,即使在长按后上下文菜单也不会出现。关于如何使它工作的任何想法?

【问题讨论】:

【参考方案1】:

其实mapview类是ViewGroup的扩展类。 你应该做到以下几点:

1.覆盖mapsforge中的OnTouchEvent。 MotionEvent 为您提供一些操作。 2.定义一个定时器来保持touch_down和touch_up之间的时间或取消。 3.如何实施备件由您决定......

【讨论】:

谢谢,我从 simpleGestureListener 实现了 onLongPress。我现在正在尝试获取长按位置的地图地理坐标。 我们可以给它一个sn-p吗?我也需要这个代码.....我希望 mapsforge 在未来的版本中支持这个 mapsforge 的所有三个(救援、重写、稳定)版本现在都支持 longpress。

以上是关于Mapsforge 重写:长按地图上的上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章

在不禁用上下文菜单的情况下管理 UITextfiled 上的长按?

在android中使用mapsforge的离线地图

在特定元素上禁用移动长按上下文菜单

长按禁用 iPad / Safari 上下文菜单

双击而不是长按 Android 上下文菜单

Android Studio中上下文菜单的使用