我想创建一个可以在任何应用程序上方打开的活动.
通常情况下,即使活动设置为对话框,当您切换到我的应用程序时,您会看到我的应用程序,并在后台看到启动器:
但是,我希望应用程序将超越任何这样的应用程序:(在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上运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)