急:service怎么启动一个悬浮窗在app之上,而不是在所有应用之上

ShouCeng 2015-04-23 11:11:08
如题所示。
楼主想实现的是app的夜晚模式,想到的方法是使用一个悬浮窗作为一个蒙层在app之上。
...全文
779 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShouCeng 2015-05-08
  • 打赏
  • 举报
回复
同事的解决方案: 需要实现夜间模式的布局中最底部加一个View,如下:
<View 
	    android:id="@+id/nightmode"
	    android:background="#b2000000"
	    android:layout_width="match_parent"
	    android:layout_height="match_parent"
	    android:visibility="gone"
	    />
虽然会麻烦点,但是解决了问题。
@cement 2015-04-24
  • 打赏
  • 举报
回复
这种方式实现夜间模式不是明智之举。 悬浮在桌面是可以实现的,用windowManager就可以实现
windfury_plus 2015-04-23
  • 打赏
  • 举报
回复
遮盖可以做夜间模式, 也可以用重新设置Theme不过要刷新activity。不方便,因为刷新很明显 还可以为布局里的控件重新set颜色、背景、字体等等,这样就不用刷新了 不知道还有其他方便方法么?
七步777 2015-04-23
  • 打赏
  • 举报
回复
你还不如调节手机亮度,直接将屏幕调暗不就晚上了
ShouCeng 2015-04-23
  • 打赏
  • 举报
回复
引用 4 楼 AA5279AA 的回复:
只要不申请桌面悬浮的权限,默认就是只悬浮在当前APP之上的。 不过你这方法实现夜间模式真的不是可行的,覆盖了之后同时也笑话了用户的点击。
嗯,我也感觉这种方式实现夜间模式不是明智之举,但如果修改背景修改字体工作量会相当大。 能详细说明下你的方法吗? 比如不申请桌面悬浮的权限,我没找到。 或者你有更好的实现夜间模式的方案?
失落夏天 版主 2015-04-23
  • 打赏
  • 举报
回复
只要不申请桌面悬浮的权限,默认就是只悬浮在当前APP之上的。 不过你这方法实现夜间模式真的不是可行的,覆盖了之后同时也笑话了用户的点击。
ShouCeng 2015-04-23
  • 打赏
  • 举报
回复
引用 1 楼 u011433995 的回复:
程序开启就显示,退出就关闭呗
一个应用有很多Activity,如果使用这种方法,就会麻烦
yexianghu 2015-04-23
  • 打赏
  • 举报
回复
同意楼上的方法,程序onPause就隐藏,程序onResume就显示
u011433995 2015-04-23
  • 打赏
  • 举报
回复
程序开启就显示,退出就关闭呗
多 文 档 命 令 行 一、概括: 作者长期从事 CAD 软件的使用、对比、二次开发技术的研究工作,特别对于欧特克(Autodesk)软件公司的旗舰产品 AutoCAD 以及其二次开发平台 ObjectARX for AutoCAD ,它公布许多的应用程序 AutoCAD 本身的组件、或者组件的开发接口。经作者的多年分析,可以对它进行如下描述:其核心二次开发技术 ObjectARX 定义一个分层式软件开发模型,其存在三大技术:图形文件的读写及内存管理、实体的屏幕显示、人机交互。 二、软件工程的由来: 使用 AutoCAD 的技术人员都知道,从 AutoCAD 2000 以后的各个版本, AutoCAD 中的命令的执行具有以下的特性,在一个命令执行没有完成之前就可以切换到另一个图形窗口执行别的命令,就像切换到别的应用程序。 从代码编制的角度讲,就是在一个程序的代码执行序列中的两个独立过程中的代码相互切换,从知道 AutoCAD 绘图的这个功能现象后,作者就对其很感兴趣,一直至今。 AutoCAD 二次开发的好处在于免费提供了基于 Visual C++ 集成开发环境的所必需的头文件、输入库、动态链接库。通过研读头文件,仔细阅读帮助文档,终于明白这个技术可以称为人机交互技术的组成部分,也是 ObjectARX for AutoCAD 隐藏的技术之一,这些技术就隐藏在 ObjectARX 应用程序同 AutoCAD 作用并进行用户输入的许多个全局函数中,其函数名称具有如下命名规则, acedGetXXX 。 由于这些函数同以往的控制台应用程序中调用的 C 语言库中的控制台输入输出函数具有初级的类似,于是作者确定自己的研究方向就是将这些用户输入函数的实现技术搞清楚,同时最好编制出原型程序,于是在 Microsoft Windows 2000 上安装 AutoCAD 2000 、ObjectARX for AutoCAD 2000 以及符合 ObjectARX 开发条件的 Visual C++ 6.0 ,开始的研究之路。 软件工程名称就定义为多文档命令行。 三、成功的结果: 近十年来的研究,经过各种各样技术路线的努力,终于得到了回报,做出了自己的原型程序,原型程序的目标是模拟 AutoCAD 使用者可以看到的下列组成部分:多文档同时编辑、命令行窗口、主窗口菜单、字符屏幕窗口、多文档命令,原型程序也同时实现了初级的全局用户输入函数、利用 MFC 序列化技术实现命令扩展、利用 MFC 扩展技术实现多文档框架下“文档-视图框架”的扩展、以及使用全局用户输入函数调用多文档命令等。 四、成功后的思考: 当自己的努力走到这一步之后,就明白以下一些问题:为什么 AutoCAD R14 不是多文档界面?这些全局用户输入函数是如何协调用户的输入以及操作系统的输入?全局用户输入函数是否同菜单宏相联系?怎样联系? 更推而广之,如果上升到人机交互技术组成的话,那么不光是 CAD 图形界面的软件提供二次开发技术需要它?其他软件也一样。 作者在按照 ObjectARX 提供头文件的技术线索,继续完善运行时刻扩展必备的 C++ 类库管理。 五、原型程序代码使用: 本电子邮件的附件为笔者努力的部分代码,主要是通过 MFC 扩展动态链接库编制多文档命令,实现开发用户自己登记、实现多文档命令,让开发用户查看“文档-视图框架”扩展部分详细代码。 使用环境: Visual C++ 6.0 ,请不要安装各种各样的 Service Pack,展开目录 MRXEXT 中,就相当于我们设计的 ObjectARX 代码,使用命令 Appload 调入这个 MFC 扩展动态连接库(MRXEXTD.MRX),可以使用的命令有:appload、test、call、doccreate、docClose 等。 使用过 Visual C++ 6.0 的开发者,可以明白原型程序的程序执行模块 multitopd.exe 和动态链接库执行模块 mrxextd.mrx 共享使用 MFC 动态链接库的调试版本。命令类是 MFC 扩展可序列化类,相关技术的应用不想多讲。 命令 test 是一个简单的多文档命令,在多文档界面下,如何测试多文档命令由研摩者自己思考。作者认为这也是理解 ObjectARX 应用开发的一个技术技巧。对应成员函数 MdMvEdCommandTest:: On_mdmvEdCommand() 命令 call ,对应成员函数 MdMvEdCommandCall :: On_mdmvEdCommand (),函数定义代码存在两段代码,研摩者可以编译、链接任一段代码或两段代码,同 ObjectARX 中 acedCmd 全局函数类似。 命令 doccreate ,对应成员函数 MdMvEdCommandDocCreate :: On_mdmvEdCommand (),这个命令可以将研发者“文档-视图”框架加入到 MDI 文档主框架中,值得注意的是新加入研发者文档没有文档执行上下文,所以不能够在它的视图窗口活动时敲入任何命令以执行,需要切换 multitopd.exe 应用程序提供的文档对应视图才能敲入命令。 命令 docclose ,对应成员函数 MdMvEdCommandDocClose :: On_mdmvEdCommand () ,这个用来关闭 mrxextd.mrx 研发者动态链接库执行模块中提供的“文档-视图”框架。 命令 appload ,由作者实现,完成扩展应用程序管理,现在不存在卸载命令,请原谅。 所有命令的敲入都不具备可见性,因为原型程序没有做命令行显示,请原谅。 六、作者联系: 如果想将自己的软件向使用者提供二次开发技术,欢迎来信联系。将附件改为 mrxext.exe ,再使用 WinRAR 或自解压。 电子邮箱:guzhenghong@sina.com ; 无兴趣者,勿恼。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧