【问题标题】:Creating Menu's based on touch events (Android/Opengl1.0)基于触摸事件创建菜单 (Android/Opengl1.0)
【发布时间】:2012-02-02 18:58:06
【问题描述】:

我有一个 Activity 类和一个 Renderer 类(扩展 GLSurfaceView 实现了 Renderer)。 在 Renderer 类中,我有一个“onTouchEvent”方法来处理旋转等触摸事件。

现在,我想显示一个在触摸屏幕的某些部分时弹出的菜单。我发现我需要在 Activity 类中实现一个 Menu(因为我们在这里得到了 MenuInflator 对象)。但是,我想在我的 Renderer 类的 onTouchEvent 中实现菜单,以便在触摸屏幕的某些部分时显示菜单。

我该如何实现?

我正在使用 Android/java/opengl1.0 。

【问题讨论】:

    标签: android opengl-es menu


    【解决方案1】:

    也许,您可以使用集成良好的上下文菜单来做您想做的事情。 您可以在活动中覆盖onCreateContextMenu() 并禁用长按上下文菜单等,或者使用其他名称实现此方法。 然后,您必须从渲染器内部调用此方法,该渲染器可以访问其封闭的活动。也许,您想将一些不变的参数(例如 View v)移到方法中。

    public void createMyContextMenu(ContextMenu menu, View v,
                                    ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu, menu);
    }
    

    Android - how to disable long press on Search button (Nexus One)

    http://developer.android.com/guide/topics/ui/menus.html#context-menu

    【讨论】:

      【解决方案2】:

      是的,您可以将其用作上下文菜单。您可以随时通过调用 View.showContextMenu() 来提出这个问题(例如,响应您要求的自定义 onTouchEvent)。上下文菜单必须在包含的 Activity 中定义,但可以在 View 和 Activity 之间设置协议以添加特定于 View 的行为。如果您查看我的 Infinirule 应用程序中的 SlideView 类的代码,您将看到我如何根据触摸的显示部分调出不同的上下文菜单。

      【讨论】:

        猜你喜欢
        • 2013-05-09
        • 2012-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多