Floating app on Android (Windowed app)

那年仲夏 提交于 2021-02-04 12:44:32

问题


Does anyone know how I can create a floating window? (Image below shows what I mean) - source code

I've read on various websites that in order to do so an app must be running as a service which should in turn be running as an activity using 'TYPE_SYSTEM_ALERT'.

If the above is or isn't true ... I still don't know how to implement the code. Can someone write some code showing how a simple app (click button and do something) can be made into a floating window, Thank You :)

This may also help - facebook chatheads

Floating Window App


回答1:


The simplest way is to use the great open source Standout library: https://github.com/pingpongboss/StandOut




回答2:


You can use WindowManager to inflate a view. Something like this:

LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);


overlay = (RelativeLayout) inflater.inflate(R.layout.overlay, null);

final LayoutParams params = new LayoutParams(
                        LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT,
                        LayoutParams.TYPE_SYSTEM_ALERT,
                        LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCH_MODAL,
                        PixelFormat.TRANSLUCENT);


WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
if (overlay.isShown()){
        wm.updateViewLayout(overlay, params);
}
else {

        // add overlay
        wm.addView(overlay, params);
}

Whit this you can inflate any view on any application.

Hope it helps you!!




回答3:


You might also want to check out Tooleap SDK: http://www.tooleap.com




回答4:


These q&a's (linked below) where helpful for achieving what i wanted:

Possible to inflate an XML layout in a Service? (Android)

Creating a system overlay window (always on top)



来源:https://stackoverflow.com/questions/22731445/floating-app-on-android-windowed-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!