安卓应用程序实现黑白模式的方法及系统技术方案

技术编号:26068533 阅读:61 留言:0更新日期:2020-10-28 16:41
本公开是关于一种安卓应用程序实现黑白模式的方法、系统及终端设备。该方法包括:获取安卓应用显示窗口的顶级父View容器;配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像;通过所述顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式。本公开提供的方案,能实现简单快捷的进行安卓应用的整体黑白灰度化。

【技术实现步骤摘要】
安卓应用程序实现黑白模式的方法及系统
本公开涉及软件
,尤其涉及一种安卓应用程序实现黑白模式的方法及系统。
技术介绍
目前不少网站和App(Application,应用程序)应用可以实现页面黑白灰度化(也称为黑白模式)。其中网页端可以通过CSS(CascadingStyleSheets,层叠样式表)样式为整个页面添加这个效果,App实现起来普遍比较复杂。谷歌发布的Android(安卓)Q开始提供一个新的Dark(深色)主题,适用于Android系统UI(UserInterface,用户界面)和设备上运行的应用程序。安卓应用“黑白模式”,可以通过AndroidQ的两种主题间的切换(主要是各种背景色,字体颜色和图标),需要定义两套不同的主题,根据是否是黑白模式进行主题的切换。该方案需要定义和设置大量的属性和字段配置到对应控件中,还需要对server(服务器)下发的图片单独做灰度处理,适配量大且繁琐,代码侵入度高,并且不能很好地兼容webView(网页视图)和视频播放。综上可知,相关技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。
技术实现思路
为克服相关技术中存在的问题,本公开提供一种安卓应用程序实现黑白模式的方法及系统,以实现简单快捷的进行安卓应用程序的整体黑白灰度化。根据本公开实施例的第一方面,提供一种安卓应用程序实现黑白模式的方法,所述方法包括:获取安卓应用显示窗口的顶级父View容器;配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像;通过所述顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式。在一种实施方式中,所述顶级父View容器为DecorView;所述获取安卓应用显示窗口的顶级父View容器为获取安卓应用显示窗口的顶级父View容器DecorView;所述顶级父View容器DecorView的获取是在所述安卓系统中的Activity生命周期中的setContentView完成之后。在一种实施方式中,所述配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像包括:配置所述安卓系统的颜色矩阵,将所述安卓应用显示的彩色图像调整为过程灰度图像;配置所述安卓系统的颜色矩阵的过滤器,为所述过程灰度图像添加灰度滤镜;配置所述安卓系统的画笔控件的多项绘图参数,将添加所述灰度滤镜后的过程灰度图像调整为所述预期的灰度图像。在一种实施方式中,所述配置所述安卓系统的颜色矩阵包括:将所述安卓系统的颜色矩阵中表示RGB的三个颜色通道对应的三组数值配置为相等,并且相加趋近于1。在一种实施方式中,所述通过顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式包括:所述顶级父View容器调用setLayerType执行硬件加速绘制;获取所述安卓应用在启用硬件加速后的硬件加速绘制模型;根据所述硬件加速绘制模型根据所述硬件加速绘制模型,将所述安卓应用全局显示为黑白模式。根据本公开实施例的第二方面,提供一种安卓应用程序实现黑白模式的系统,包括:获取模块,用于获取安卓应用显示窗口的顶级父View容器;配置模块,用于配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像;处理模块,用于通过所述顶级父View容器组件使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式。在一种实施方式中,所述获取模块获取安卓应用显示窗口的顶级父View容器为获取安卓应用显示窗口的顶级父View容器DecorView;所述获取模块是在所述安卓系统中的Activity生命周期中的setContentView完成之后,获取所述顶级父View容器DecorView。在一种实施方式中,所述配置模块包括:第一配置子模块,用于配置所述安卓系统的颜色矩阵,将所述安卓应用显示的彩色图像调整为过程灰度图像;第二配置子模块,用于配置所述安卓系统的颜色矩阵的过滤器,为所述过程灰度图像添加灰度滤镜;第三配置子模块,用于配置所述安卓系统的画笔控件的多项绘图参数,将添加所述灰度滤镜后的过程灰度图像调整为所述预期的灰度图像。在一种实施方式中,所述第一配置子模块将所述安卓系统的颜色矩阵中表示RGB的三个颜色通道对应的三组数值配置为相等,并且相加趋近于1,以将所述安卓应用显示的彩色图像调整为过程灰度图像。在一种实施方式中,所述处理模块包括:调用子模块,通过顶级父View容器调用setLayerType执行硬件加速绘制;获取子模块,用于获取所述安卓应用在启用硬件加速后的硬件加速绘制模型;绘制子模块,用于根据所述硬件加速绘制模型,将所述安卓应用全局显示为黑白模式。根据本公开实施例的第三方面,提供一种终端设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。本公开的实施例提供的技术方案可以包括以下有益效果:首先获取安卓应用显示窗口的顶级父View容器;然后配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像;最后所述顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式。由此,通过配置应用程序显示的顶级窗口,利用顶级父View容器进行统一处理,可以简单快捷的进行安卓应用的整体黑白灰度化也即黑白模式,减少适配量,降低原代码的侵入度。本公开的实施例,还可以在安卓系统的Activity生命周期中的setContentView完成后获取安卓应用显示窗口的顶级父View容器DecorView。在所述配置安卓系统的颜色矩阵及画笔控件时,通过配置所述安卓系统的颜色矩阵,将所述安卓应用显示的彩色图像调整为过程灰度图像;通过配置所述安卓系统的颜色矩阵的过滤器,为所述过程灰度图像添加灰度滤镜;最后通过配置所述安卓系统的画笔控件的多项绘图参数,将添加所述灰度滤镜后的过程灰度图像调整为所述预期的灰度图像。以及,通过所述顶级父View容器调用setLayerType执行硬件加速绘制;再获取所述安卓应用在启用硬件加速后的硬件加速绘制模型,根据所述硬件加速绘制模型,将所述安卓应用全局显示为黑白模式。由此,简便的实现安卓应用的整体黑白灰度化,减少适配量,降低原代码的侵入度,也可以解决安卓应用黑白化方案中webView和视频播放的适配问题。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。图1是根据本公开一示例性实施例示出的本文档来自技高网...

【技术保护点】
1.一种安卓应用程序实现黑白模式的方法,其特征在于,所述方法包括:/n获取安卓应用显示窗口的顶级父View容器;/n配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像;/n通过所述顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式。/n

【技术特征摘要】
1.一种安卓应用程序实现黑白模式的方法,其特征在于,所述方法包括:
获取安卓应用显示窗口的顶级父View容器;
配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像;
通过所述顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式。


2.根据权利要求1所述的方法,其特征在于:
所述顶级父View容器为DecorView;
所述获取安卓应用显示窗口的顶级父View容器为获取安卓应用显示窗口的顶级父View容器DecorView;
所述顶级父View容器DecorView的获取是在所述安卓系统中的Activity生命周期中的setContentView完成之后。


3.根据权利要求1所述的方法,其特征在于,所述配置安卓系统的颜色矩阵及画笔控件,将所述安卓应用显示的彩色图像调整为预期的灰度图像包括:
配置所述安卓系统的颜色矩阵,将所述安卓应用显示的彩色图像调整为过程灰度图像;
配置所述安卓系统的颜色矩阵的过滤器,为所述过程灰度图像添加灰度滤镜;
配置所述安卓系统的画笔控件的多项绘图参数,将添加所述灰度滤镜后的过程灰度图像调整为所述预期的灰度图像。


4.根据权利要求3所述的方法,其特征在于,所述配置所述安卓系统的颜色矩阵包括:
将所述安卓系统的颜色矩阵中表示RGB的三个颜色通道对应的三组数值配置为相等,并且相加趋近于1。


5.根据权利要求3所述的方法,其特征在于,所述通过顶级父View容器使用硬件加速绘制方式进行绘制,将所述安卓应用全局显示为黑白模式包括:
所述顶级父View容器调用setLayerType执行硬件加速绘制;
获取所述安卓应用在启用硬件加速后的硬件加速绘制模型;
根据所述硬件加速绘制模型,将所述安卓应用全局显示为黑白模式。
<...

【专利技术属性】
技术研发人员:余振鸿
申请(专利权)人:广州探途网络技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1