Создание меню на основе сенсорных событий (Android / Opengl1.0) - PullRequest
2 голосов
/ 02 февраля 2012

У меня есть класс Activity и класс Renderer (расширяет GLSurfaceView, реализует Renderer). Внутри класса Renderer у меня есть метод onTouchEvent для обработки сенсорных событий, таких как вращение.

Теперь я хочу отобразить меню, которое всплывает при прикосновении к некоторой части экрана. Я обнаружил, что мне нужно реализовать Menu в классе Activity (поскольку здесь мы получаем объект MenuInflator). Однако я хочу реализовать Меню внутри onTouchEvent в моем классе Renderer, чтобы Меню отображалось при касании какой-либо части экрана.

Как я могу это реализовать?

Я использую Android / java / opengl1.0.

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Возможно, вы можете делать то, что хотите, с помощью контекстного меню, которое хорошо интегрируется. Вы можете либо переопределить 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 - как отключить долгое нажатие на кнопку поиска (Nexus One)

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

0 голосов
/ 03 февраля 2012

Да, вы можете сделать это как контекстное меню.Вы можете поднять это в любое время (например, в ответ на пользовательское onTouchEvent, как вы просили), вызвав View.showContextMenu () .Контекстное меню должно быть определено внутри содержащего Activity, но можно установить протокол между View и Activity, чтобы добавить специфичное для View поведение.Если вы посмотрите на код класса SlideView в моем приложении Infinirule , вы увидите, как я вызываю различные контекстные меню в зависимости от того, к какой части экрана касаются.

...