Подтвердить что ты не робот

Android: Как нарисовать бесплатно поверх всего (любая деятельность)

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

Это похоже на отображение пользовательского значка на экране поверх всех других приложений, которые реагируют, когда вы касаетесь его, но вы можете по-прежнему касаться других видов на экране.

Пример: facebook chat heads, который отображает на экране значок с возможностью перетаскивания и щелчка, независимо от того, что вы делаете, независимо от того, находитесь ли вы на главном экране или в меню приложения или в любом приложении. Тем не менее вы можете щелкнуть значок чата и элементы фонового приложения отдельно

Как сделать что-нибудь подобное?

4b9b3361

Ответ 1

Взгляните на эту классную статью, я думаю, что именно то, что вы хотите:

http://www.piwai.info/chatheads-basics

Вкратце: вы хотите добавить это разрешение в свой манифест:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

Для api >= 23 вам нужно запросить разрешение на выполнение Settings.ACTION_MANAGE_OVERLAY_PERMISSION

Затем в службе зайдите в диспетчер окон

windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

и добавьте свои представления с помощью метода addView

Ответ 2

Взгляните на WindowManager. Вы можете сделать что-то вроде (WindowManager)mContext.getSystemService("window");, если хотите получить представление корня и использовать метод addView(view, params), если хотите добавить представление.