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

1.实现介绍

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

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

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

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

(3)ScreenUtil该类是用来封装各类接口为ScreenRecordActivity和ScreenRecordService服务。

(4)RecordScreenTitle在systeUi中录屏按钮该类继承QSTileImpl

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

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

 

2.功能介绍

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

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

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

   

 

android8.0 在systemUi中实现录屏功能_第1张图片  android8.0 在systemUi中实现录屏功能_第2张图片

 

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

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

android8.0 在systemUi中实现录屏功能_第3张图片
 

3.录屏悬浮窗显示:

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


android8.0 在systemUi中实现录屏功能_第4张图片

 

录屏源码

你可能感兴趣的:(android)