android8.0 在systemUi中实现录屏功能

系统自带录屏功能开发



1.实现介绍

录屏功能开发是systemUi中实现,主要有以下类:

1ScreenRecordActivityActivity负责录屏相关权限申请,倒计时UI显示,录屏参数初始化,绑定录屏服务等功能。

在倒计时结束开始录屏时ScreenRecordActivity会被隐藏在后台并不会显示在最近任务列表中,如果关闭录屏后ScreenRecordActivity也不会被finish因为该ActivitysingleInstance模式,等到下一次开启录屏功能时只要将该Activity重新显示到前台即可。如果因为其他异常情况被kill掉下次启动则会重新开启。

2ScreenRecordService是一个service服务ScreenRecordActivity启动后会绑定该serviceScreenRecordService主要功能是提供录屏相关接口(开始录屏,关闭录屏),监听录屏状态,提供录屏悬浮窗。

3ScreenUtil该类是用来封装各类接口为ScreenRecordActivityScreenRecordService服务。

4RecordScreenTitlesysteUi中录屏按钮该类继承QSTileImpl<BooleanState>

通过获取录屏状态更新录屏按钮和状态,实现点击事件监听。

5RecordScreenControllerImplimplementsRecordScreenController通过类名可以看出这只是一些事件处理的封装。


2.功能介绍

录屏功能主要有以下几个功能:

1.录屏启动,录屏关闭,如下图所示:

开启录屏:下拉托盘第二页显示,展开下拉托盘-》点击录屏图标即可开始录屏,如果已经是在录屏状态下,录屏图标变为关闭图标,可以点击关闭图标结束录屏功能。

   

  


2.录屏启动倒计时,如下图所示:

点击录屏后跳转到录屏倒计时界面,倒计时时间为3秒,倒计时结束界面跳转到后台调用service录屏方法开始真正录屏,更新当前状态为录屏。如果在倒计时界面按back,home键则会取消录屏操作。



3.录屏悬浮窗显示:

录屏倒计时结束后启动录屏,并在service中添加一个悬浮窗,该悬浮窗初始位置为屏幕左上角,包括录屏时间录屏状态和结束录屏按钮,可以拖拽窗口到界面任何位置,点击窗口结束录屏。




猜你喜欢

转载自blog.csdn.net/zhuxingchong/article/details/80495624