DPad на карте управляет Google API v3 в веб-обозрении - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть webView, в котором я показываю карту API Google v3.У меня есть panControl и zoomControl, которые мне нужны для навигации по dPad.В моем меню я перемещаюсь по стрелке вправо, и dPad входит в веб-представление по левой стрелке panControl.Фокус виден синим полым прямоугольником, который будет перемещаться на каждую стрелку, когда я нажимаю.Пара вопросов ...

  1. Как восстановить фокусировку (прямоугольник) после нажатия кнопки OK в центре dpad?
  2. Как получить состояние фокуса на zoomControl (единственное состояние, которое у меня сейчас есть, это нажатое состояние, при котором кнопки + или - становятся синими при нажатии ... Мне нужно состояние фокусировки)?
  3. Как узнать, на каком элементе я (т.е. - левая стрелка panControl), чтобы я мог взять под контроль dPad, возвращая true в моем onKey?

Вот снимок экраначтобы вы могли видеть прямоугольник, о котором я говорю, для фокуса:

enter image description here

Ниже приведен код:

    mWebView.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // TODO Auto-generated method stub
                if (event.getAction() == KeyEvent.ACTION_UP) {
                    switch(keyCode) {
                        case KeyEvent.KEYCODE_DPAD_CENTER:
                            Log.i(DEBUG_TAG, "KEYCODE_DPAD_CENTER");

                            return false;
                        case KeyEvent.KEYCODE_DPAD_DOWN:
                            Log.i(DEBUG_TAG, "KEYCODE_DPAD_DOWN");
                            return false;
                        case KeyEvent.KEYCODE_DPAD_UP:
                            Log.i(DEBUG_TAG, "KEYCODE_DPAD_UP");
                            return false;
                        case KeyEvent.KEYCODE_DPAD_RIGHT:
                            Log.i(DEBUG_TAG, "KEYCODE_DPAD_RIGHT");
                            return false;
                        case KeyEvent.KEYCODE_DPAD_LEFT:
                            Log.i(DEBUG_TAG, "KEYCODE_DPAD_LEFT");
                            return true;
                    }
                    return false;
                }
                return false;
            }
        });

Моя конечная цель заключается в том, чтобы иметь возможностьdpad внутри веб-просмотра, а затем, когда я доберусь до (-) зума и нажму вниз на dpad, я захочу перейти к кнопке «play» и затем стрелке вправо в нижней части экрана для других элементов управления.Если бы я оставил стрелку на нижнем элементе управления и нажал «play», я бы хотел вернуться к левому элементу навигации «Maps».

1 Ответ

1 голос
/ 03 декабря 2011

Взгляните на пример кода MapsOnTV на https://code.google.com/p/googletv-android-samples/

Развернуть исходное дерево.

...