Наложение всего приложения для Android (HUD) - PullRequest
4 голосов
/ 03 февраля 2011

Я хочу наложить вид на все приложение, включая все действия.Думайте об этом как HUD (Head Up Display) над моим приложением.Приложение имеет несколько действий, в том числе вкладку, и HUD никак не взаимодействует с пользователем, он просто отображает информацию, позволяя пользователю взаимодействовать с приложением, как обычно.Я хочу, чтобы этот HUD использовался для целей отладки, чтобы я (и другие) мог отслеживать активность и состояние приложения, когда телефон не подключен к отладочному устройству (полевое тестирование).

Как добавить такое представление?

Я пытался использовать WindowManager.addView () примерно так:

        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
             LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
             WindowManager.LayoutParams.TYPE_APPLICATION,
             WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
                  | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
             PixelFormat.TRANSLUCENT);
        windowManager.addView(hudView, lp);

Но HUD, похоже, не сохраняется на переднем плане, когда я запускаю новые действия, он просто исчезает.

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Я знаю, что это старый вопрос, но я все равно решил ответить, так как это помогло мне. Я пытался запустить HUD в игре openGL, и это прекрасно работает для этого.

Поскольку у вас уже есть отображение HUD с помощью оконного менеджера, все, что вам нужно сделать, чтобы сохранить его постоянство между действиями, это вызвать windowManager.addView(hudView, lp); в методе onResume() каждого действия. Хотя не уверен, каковы последствия для памяти (т. Е. Это вид, который удаляется, когда оконный менеджер удаляет его с экрана при переключении действий), но, по крайней мере, он будет поддерживать HUD во всем приложении.

0 голосов
/ 06 декабря 2014

Я читал, что вы перестали работать с Android, но, возможно, для дальнейших читателей:

Вы пропустили флаг WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,. Лучше всего реализовать как вид, раздутый сервисом. Не называйте это в каждом активность в onResume.

...