Ответ 1
Смотрите это:
Создание окна оверлея системы (всегда сверху)
Проверьте раздел комментария принятого ответа. Вы найдете ссылку на рабочий пример проекта.
== == EDIT
До сегодняшнего дня я бы сказал, что это просто невозможно, чтобы приложение, которое работает поверх всех остальных: домашние экраны, приложения, дозвонщик и т.д.
Если вы попробуете бесплатное приложение "Супер-менеджер", он сделает именно это. У этого есть значок и виджет, такой как экран, который будет отображаться всегда и везде. Пока значок или виджет находится на экране, вы все равно можете взаимодействовать с приложением, которое находится за ним.
Как это возможно и как мы можем воссоздать эту функциональность?
Обновление: Вот некоторые его изображения в действии. Вы можете увидеть наложенное приложение, выполняемое как маленькая стрелка поверх Дельфина. Затем, когда вы нажимаете на нее, вы можете видеть, что приложение работает как большой вид виджетов. Даже когда виджет включен, вы все равно можете взаимодействовать с фоновым приложением. В этом примере дельфином является фоновое приложение.
Смотрите это:
Создание окна оверлея системы (всегда сверху)
Проверьте раздел комментария принятого ответа. Вы найдете ссылку на рабочий пример проекта.
== == EDIT
Начиная с Android 4.x группа разработчиков Android Android зафиксировала потенциал проблемы безопасности, добавив новую функцию adjustWindowParamsLw(), в которой она добавит FLAG_NOT_FOCUSABLE, FLAG_NOT_TOUCHABLE и удалит флаги FLAG_WATCH_OUTSIDE_TOUCH для окна TYPE_SYSTEM_OVERLAY.
Окно TYPE_SYSTEM_OVERLAY не получит никакого события касания на платформе ICS и, конечно же, использовать TYPE_SYSTEM_OVERLAY не будет работать на ICS или будущих устройствах.
Обновлено: 2016/5/4 TYPE_TOAST не может получать события касания на Android 4.0 ~ 4.3. Это то же самое, что и TYPE_SYSTEM_OVERLAY. В Android 4.4+ TYPE_TOAST удален из списка исключений, поэтому вы также можете использовать TYPE_TOAST для получения событий касания на устройствах Android 4.4+.
Это можно сделать с помощью комбинации вещей. Начальная кнопка выполняется путем создания окна типа TYPE_SYSTEM_OVERLAY. Эти окна не могут получить фокус, однако вы можете использовать FLAG_WATCH_OUTSIDE_TOUCH для получения событий касания и согласования координат с тем, что вы были затронуты.
Аналогично существует http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_SYSTEM_ALERT (и TYPE_SYSTEM_DIALOG).
Наконец, действие можно создать с помощью http://developer.android.com/reference/android/R.style.html#Theme_Translucent (или вариантов).