目录
开发背景
一、搭建环境
二、功能实现
1、思路简单分析:
2、主要问题
三、展示
开发背景
好久没有碰安卓了,由于自己一直记性不好,经常需要把壁纸改成将要完成的任务来提醒自己。(不选择手机的备忘录,是因为它不能一直显示,对我来说不太满意)于是,打算动手写一个简单APP,来满足自己。
功能:可以输入文字,可以定位在屏幕最上层。
这是最初功能。
一、搭建环境
输入
测试成功
连接成功!
二、功能实现
在 上查询资料,好像FloatingWindow可以实现类似的功能。
Floating view:可以悬浮在应用的各个页面。floating view是放在一个单独的window中。 对于每个app而言,它所在的window在floating view所在的window之下,这样,就可以悬浮在其至上。window可以设置相应的层级。比如,通知栏,就是在一个级别很高的window中。
1、思路简单分析:
1)用 EditText接收文本,点击Button提交,触发点击事件
2)在点击事件内获取文本,通过Intent,传入Service
3)在Service里取到对应的文本,送给FloatingWindow
4)撒花/span>
2、主要问题
1)权限与请求的设置
在Manefest.xml文件中声明权限
2)设置里面对本应用进行设置悬浮窗权限。该权限在应用中需要启动来让用户手动设置权限。
3)LayoutParam设置
里的变量,指定窗口类型的。
在Android 8.0之前,悬浮窗口设置可以为TYPE_PHONE,提供用户交互操作的非应用窗口。
在Android 8.0之后,如果需要实现在其他应用和窗口上方显示提醒窗口,那么必须该为TYPE_APPLICATION_OVERLAY的新类型。
4)在Servie里获取EditText内容
为了这里在showFloatingWindow() 函数里接收到输入的文本,再给 showFloatingWindow()
借助了静态变量Text传递。不太规范,但此应用自用,且体积尚小,后期再做优化。
5)显示的不太对
经过一番测试,发现
showFloatingWindow函数比onStartCommand函数先执行。
查看onStartCommand()函数,发现先调用了函数,其次才取值,修改位置。
完美
三、展示
暂更到这,2021年12月31日
参考博文:
Android悬浮窗的实现_董小虫的专栏-CSDN博客_android 悬浮窗
android中activity向service中传值_illdvm_新浪博客
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91442 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!