java– 让应用程序在其他app上运行

java– 让应用程序在其他app上运行,第1张

概述我想创建一个可以在任何应用程序上方打开的活动.通常情况下,即使活动设置为对话框,当您切换到我的应用程序时,您会看到我的应用程序,并在后台看到启动器:但是,我希望应用程序将超越任何这样的应用程序:(在photoshop中制作):我确实看到了这个问题Creatingasystemoverlaywindow

我想创建一个可以在任何应用程序上方打开的活动.

通常情况下,即使活动设置为对话框,当您切换到我的应用程序时,您会看到我的应用程序,并在后台看到启动器:

但是,我希望应用程序将超越任何这样的应用程序:(在photoshop中制作):

我确实看到了这个问题Creating a system overlay window (always on top),但在ICS中,布局没有功能.
此外,我想从我的应用程序给出一个对话框,而不会最小化其他应用程序…

解决方法:

有很多应用程序可以显示浮动视图,例如:airbrowser,lilyPad,Stick it,AirTerm,Smart Taskbar,aircalc ……

无论如何,为了实现这个功能,你必须有一个名为“androID.permission.SYstem_ALERT_WINDOW”的特殊权限,并使用类似的东西:

final WindowManager.LayoutParams param=new WindowManager.LayoutParams();param.flags=WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;final VIEw vIEw=findVIEwByID(R.ID.my_floating_vIEw);final VIEwGroup parent=(VIEwGroup)vIEw.getParent();if(parent!=null)  parent.removeVIEw(vIEw);param.format=PixelFormat.RGBA_8888;param.type=WindowManager.LayoutParams.TYPE_SYstem_ALERT;param.gravity=Gravity.top|Gravity.left;param.wIDth=parent!=null?LayoutParams.WRAP_CONTENT:vIEw.getLayoutParams().wIDth;param.height=parent!=null?LayoutParams.WRAP_CONTENT:vIEw.getLayoutParams().height;final WindowManager wmgr=(WindowManager)getApplicationContext().getSystemService(Context.WINDOW_SERVICE);wmgr.addVIEw(vIEw,param);// Todo handle overlapPing Title bar and/or action bar// Todo you must add logic to remove the vIEw// Todo you must use a special permission to use this method :androID.permission.SYstem_ALERT_WINDOW// Todo if you wish to let the vIEw stay when leaving the app, make sure you have a foreground service running.
总结

以上是内存溢出为你收集整理的java – 让应用程序在其他app上运行全部内容,希望文章能够帮你解决java – 让应用程序在其他app上运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存