CN114237799B - 一种页面指定区域灰度化方法及装置 - Google Patents
一种页面指定区域灰度化方法及装置 Download PDFInfo
- Publication number
- CN114237799B CN114237799B CN202111564384.6A CN202111564384A CN114237799B CN 114237799 B CN114237799 B CN 114237799B CN 202111564384 A CN202111564384 A CN 202111564384A CN 114237799 B CN114237799 B CN 114237799B
- Authority
- CN
- China
- Prior art keywords
- graying
- page
- control
- basic
- basic control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000000694 effects Effects 0.000 claims abstract description 29
- 238000010422 painting Methods 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 24
- 230000003993 interaction Effects 0.000 claims description 16
- 238000009434 installation Methods 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 239000003550 marker Substances 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 3
- 230000002452 interceptive effect Effects 0.000 claims 2
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种页面指定区域灰度化方法及装置,在接收到用户发送的页面灰度化请求后,解析所述页面灰度化请求,得到指定基础控件的灰度化开关(所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘);根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。本申请通过定义灰度化标志位并在控件绘制阶段设置灰度化画笔的方式,封装可灰度化基础控件,并根据请求接口动态获取配置,实现页面区域灰度化效果,从而解决页面全量灰度化效果单一的问题,加强App灰度化效果的动态运营和细粒度控制。
Description
技术领域
本申请涉及安卓App应用开发技术领域,特别的,尤其涉及一种页面指定区域灰度化方法及装置。
背景技术
目前,安卓App灰度化方案通常以设置画笔饱和度的方式实现页面全量灰度化,具体实现:安卓App客户端通过请求服务器获取灰度化开关配置,并在页面创建时根据开关状态决定是否设置装饰视图灰度化画笔,从而实现页面的全量灰度化。这种方式会将页面内容全部灰度化,无法满足动态多样的灰度化需求,也无法满足指定区域无须灰度化的需求。
发明内容
鉴于上述内容中的问题,本申请提供了一种页面指定区域灰度化方法及装置,用以实现页面区域灰度化效果,从而解决页面全量灰度化效果单一的问题,加强App灰度化效果的动态运营和细粒度控制。
为了实现上述目的,本申请提供了以下技术方案:
一种页面指定区域灰度化方法,包括:
接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。
优选的,在所述接收用户发送的页面灰度化请求之前,还包括:
在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
优选的,还包括:
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
优选的,所述根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化,包括:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;
所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
一种页面指定区域灰度化装置,包括:
第一处理单元,用于接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
第二处理单元,用于根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。
优选的,还包括:第三处理单元;
所述第三处理单元,用于在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
优选的,所述第三处理单元还用于:
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
优选的,所述第二处理单元具体用于:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;
所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如上述所述的页面指定区域灰度化方法。
一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上述所述的页面指定区域灰度化方法。
本申请所述的页面指定区域灰度化方法及装置,在接收到用户发送的页面灰度化请求后,解析所述页面灰度化请求,得到指定基础控件的灰度化开关(所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘);根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。本申请通过定义灰度化标志位并在控件绘制阶段设置灰度化画笔的方式,封装可灰度化基础控件,并根据请求接口动态获取配置,实现页面区域灰度化效果,从而解决页面全量灰度化效果单一的问题,加强App灰度化效果的动态运营和细粒度控制。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种页面指定区域灰度化方法的流程示意图;
图2为本申请实施例公开的一种页面指定区域灰度化装置的结构示意图;
图3为本申请实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见附图1,为本申请实施例提供的一种页面指定区域灰度化方法流程示意图。如图1所示,本申请实施例提供了一种页面指定区域灰度化方法,该方法包括如下步骤:
S101:接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
本申请实施例中,需要预先在安卓资源文件中声明名name为tag_view_gray的id,通过控件的setTag(key)方法设置其值,用于标识控件是否需进行灰度化。
需要说明的是,在所述接收用户发送的页面灰度化请求之前,还包括:
在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
具体的,在页面创建时,对于XML文件实例化的基础控件,拦截视图渲染器解析XML实例化控件方法,将XML中声明的基础控件替换为可灰度化控件。当灰度化开关打开时,根据下发的控件白名单匹配该控件是否需灰度化;若是,则设置其灰度化标志位(id为tag_view_gray的tag属性)值为true,控件实例化后在绘制阶段根据该标志位判断是否实现灰度化效果。
另外,在页面创建时,对于通过java代码实例化的基础控件,通过javassist字节码插桩工具,通过匹配可灰度化控件名单的方式,在安装包编译阶段通过类替换,在其编译为字节码文件时替换可灰度化控件。当灰度化开关打开时,根据下发的控件白名单匹配该控件是否需灰度化;若是,则设置其灰度化标志位(id为tag_view_gray的tag属性)值为true,控件实例化后在绘制阶段根据该标志位判断是否实现灰度化效果。
进一步需要说明的是,本申请实施例中所涉及的封装支持灰度化的安卓App基础控件,具体包括如下:
1)封装可灰化基础控件。基础控件都继承自View,主要包括两大类:一种是直接继承自View的UI交互控件,另一种是直接继承自ViewGroup的容器控件(ViewGroup也继承自View)。页面都由这些基础控件或其派生控件构成。
2)在控件绘制阶段实例化新的画笔,并设置画笔的setColorFilter方法设置其饱和度为0的过滤器。绘制前通过画布的saveLayer方法设置画笔进行绘制,实现控件的灰度化效果。绘制结束后调用画布的restore方法重置状态。
3)封装支持灰度化的基础UI交互控件,通过重写draw和setBackground方法,绘制时根据标志位判断是否插入灰度化画笔,实现自身内容和背景的灰度化能力。
4)封装支持灰度化的基础容器控件,通过重写onDraw和setBackground方法,绘制时根据标志位判断是否插入灰度化画笔,实现自身内容和背景的灰度化能力。
本申请实施例中,App请求接口获取灰度化开关和控件白名单,并在内存中生成对应的数据对象。如:开关打开时,白名单内的控件不需灰度化,白名单外的控件默认灰度化;开关关闭时,所有控件关闭灰度化效果。
S102:根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。
本申请实施例中,上述所述根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化,包括:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
需要说明的是,在页面已创建时,当请求接口下发灰度化配置后,发送本地广播全局通知所有已创建的页面;页面收到通知后遍历视图树中的所有控件及其嵌套的子控件。当灰度化开关打开时,根据下发的控件白名单匹配该控件是否需灰度化;若是,则设置其灰度化标志位(id为tag_view_gray的tag属性)值为true,并执行该控件的重绘逻辑实现灰度化效果。
本申请实施例提供一种页面指定区域灰度化方法,在接收到用户发送的页面灰度化请求后,解析所述页面灰度化请求,得到指定基础控件的灰度化开关(所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘);根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。本申请实施例通过定义灰度化标志位并在控件绘制阶段设置灰度化画笔的方式,封装可灰度化基础控件,并根据请求接口动态获取配置,实现页面区域灰度化效果,从而解决页面全量灰度化效果单一的问题,加强App灰度化效果的动态运营和细粒度控制。
请参阅图2,基于上述实施例公开的一种页面指定区域灰度化方法,本实施例对应公开了一种页面指定区域灰度化装置,该装置包括:
第一处理单元201,用于接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
第二处理单元202,用于根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。
进一步的,还包括:第三处理单元;
第三处理单元,用于在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
更进一步的,所述第三处理单元还用于:
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
进一步的,所述第二处理单元202具体用于:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;
所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
所述页面指定区域灰度化装置包括处理器和存储器,上述第一处理单元、第二处理单元和第三处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现页面区域灰度化效果,从而解决页面全量灰度化效果单一的问题,加强App灰度化效果的动态运营和细粒度控制。
本申请实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述页面指定区域灰度化方法。
本申请实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述页面指定区域灰度化方法。
本申请实施例提供了一种电子设备,如图3所示,该电子设备30包括至少一个处理器301、以及与所述处理器连接的至少一个存储器302、总线303;其中,所述处理器301、所述存储器302通过所述总线303完成相互间的通信;处理器301用于调用所述存储器302中的程序指令,以执行上述的所述页面指定区域灰度化方法。
本文中的电子设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化。
进一步的,在所述接收用户发送的页面灰度化请求之前,还包括:
在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
更进一步的,还包括:
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
进一步的,所述根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化,包括:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;
所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
本申请是根据本申请实施例的方法、设备(系统)、计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种页面指定区域灰度化方法,其特征在于,包括:
接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化;
其中,封装可灰化基础控件,在控件绘制阶段实例化新的画笔,并设置画笔的setColorFilter方法设置其饱和度为0的过滤器;绘制前通过画布的saveLayer方法设置画笔进行绘制,实现控件的灰度化效果,绘制结束后调用画布的restore方法重置状态;封装支持灰度化的基础UI交互控件,通过重写draw和setBackground方法,绘制时根据标志位判断是否插入灰度化画笔,实现自身内容和背景的灰度化能力;封装支持灰度化的基础容器控件,通过重写onDraw和setBackground方法,绘制时根据标志位判断是否插入灰度化画笔,实现自身内容和背景的灰度化能力;
其中,所述根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化,包括:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;
所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
2.根据权利要求1所述的方法,其特征在于,在所述接收用户发送的页面灰度化请求之前,还包括:
在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
3.根据权利要求2所述的方法,其特征在于,还包括:
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
4.一种页面指定区域灰度化装置,其特征在于,包括:
第一处理单元,用于接收用户发送的页面灰度化请求,并解析所述页面灰度化请求,得到指定基础控件的灰度化开关,所述页面灰度化请求中至少包含所述指定基础控件的灰度化开关,所述灰度化开关的状态通过预设标志位标识所述指定基础控件是否需要灰度化重绘;
第二处理单元,用于根据所述灰度化开关的状态控制所述指定基础控件,以实现对应页面指定区域的灰度化;
其中,封装可灰化基础控件,在控件绘制阶段实例化新的画笔,并设置画笔的setColorFilter方法设置其饱和度为0的过滤器;绘制前通过画布的saveLayer方法设置画笔进行绘制,实现控件的灰度化效果,绘制结束后调用画布的restore方法重置状态;封装支持灰度化的基础UI交互控件,通过重写draw和setBackground方法,绘制时根据标志位判断是否插入灰度化画笔,实现自身内容和背景的灰度化能力;封装支持灰度化的基础容器控件,通过重写onDraw和setBackground方法,绘制时根据标志位判断是否插入灰度化画笔,实现自身内容和背景的灰度化能力;
其中,所述第二处理单元具体用于:
在页面已创建时,当请求接口下发灰度化配置后,通过本地广播全局通知所有已创建的页面;
所述页面在收到通知后遍历视图树中的所有控件及其嵌套的子控件,通过设置控件的灰度化标志位状态并触发重绘,控制控件的灰度化效果热切换,以实现对应页面指定区域的灰度化。
5.根据权利要求4所述的装置,其特征在于,还包括:第三处理单元;
所述第三处理单元,用于在页面创建之前,预先定义所述指定基础控件的预设标志位,确定可灰度化基础控件、可灰度化基础UI交互控件和可灰度化基础容器控件,所述可灰度化基础控件在绘制阶段通过设置灰度化画笔实现灰度化,所述可灰度化基础UI交互控件用于实现全部内容和背景的灰度化,所述可灰度化基础容器控件用于实现自身内容和背景的灰度化。
6.根据权利要求5所述的装置,其特征在于,所述第三处理单元还用于:
在页面创建时,对于XML文件实例化的基础控件,通过拦截视图渲染器解析实例化的流程,将XML中声明的基础控件替换为可灰度化控件;对于通过java代码实例化的基础控件,通过字节码插桩工具,在安装包编译阶段通过类替换,在其编译为字节码文件时替换为可灰度化基础控件。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如权利要求1至3中任一项所述的页面指定区域灰度化方法。
8.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至3中任一项所述的页面指定区域灰度化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111564384.6A CN114237799B (zh) | 2021-12-20 | 2021-12-20 | 一种页面指定区域灰度化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111564384.6A CN114237799B (zh) | 2021-12-20 | 2021-12-20 | 一种页面指定区域灰度化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114237799A CN114237799A (zh) | 2022-03-25 |
CN114237799B true CN114237799B (zh) | 2024-01-16 |
Family
ID=80759408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111564384.6A Active CN114237799B (zh) | 2021-12-20 | 2021-12-20 | 一种页面指定区域灰度化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237799B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646038A (zh) * | 2012-02-28 | 2012-08-22 | 广州市动景计算机科技有限公司 | 控件内容展现方法、控件内容展现装置以及移动终端 |
CN105893586A (zh) * | 2016-04-06 | 2016-08-24 | 中国建设银行股份有限公司 | 一种基于积分规则自动生成动态页面的方法 |
CN111090825A (zh) * | 2019-12-25 | 2020-05-01 | 北京商越网络科技有限公司 | 一种网页内容动态定制方法 |
CN111833417A (zh) * | 2020-07-14 | 2020-10-27 | 广州探途网络技术有限公司 | 安卓应用程序实现黑白模式的方法及系统 |
CN111930461A (zh) * | 2020-08-13 | 2020-11-13 | 中国工商银行股份有限公司 | 基于Android的移动端APP全量页面灰度化方法和装置 |
CN113094136A (zh) * | 2021-04-09 | 2021-07-09 | 广州博冠信息科技有限公司 | 页面显示控制方法、装置、存储介质及电子设备 |
WO2021169991A1 (zh) * | 2020-02-27 | 2021-09-02 | 华为技术有限公司 | 终端设备主题色彩的配置方法、装置和终端设备 |
-
2021
- 2021-12-20 CN CN202111564384.6A patent/CN114237799B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646038A (zh) * | 2012-02-28 | 2012-08-22 | 广州市动景计算机科技有限公司 | 控件内容展现方法、控件内容展现装置以及移动终端 |
CN105893586A (zh) * | 2016-04-06 | 2016-08-24 | 中国建设银行股份有限公司 | 一种基于积分规则自动生成动态页面的方法 |
CN111090825A (zh) * | 2019-12-25 | 2020-05-01 | 北京商越网络科技有限公司 | 一种网页内容动态定制方法 |
WO2021169991A1 (zh) * | 2020-02-27 | 2021-09-02 | 华为技术有限公司 | 终端设备主题色彩的配置方法、装置和终端设备 |
CN111833417A (zh) * | 2020-07-14 | 2020-10-27 | 广州探途网络技术有限公司 | 安卓应用程序实现黑白模式的方法及系统 |
CN111930461A (zh) * | 2020-08-13 | 2020-11-13 | 中国工商银行股份有限公司 | 基于Android的移动端APP全量页面灰度化方法和装置 |
CN113094136A (zh) * | 2021-04-09 | 2021-07-09 | 广州博冠信息科技有限公司 | 页面显示控制方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114237799A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108089856B (zh) | 一种页面元素的监听方法及装置 | |
CN107656759B (zh) | 一种用于用户界面的渲染方法和装置 | |
CN110007980B (zh) | 多业务服务端的实现方法和装置 | |
CN107045438B (zh) | 一种应用顶层视图处理方法、装置及组件 | |
CN107370778B (zh) | 一种启动应用的方法和系统 | |
CN111131352B (zh) | 主题切换方法及装置 | |
CN107092475B (zh) | 一种交互控件的调用方法及装置 | |
CN110798490B (zh) | 基于数据中台接入第三方系统的方法、装置及数据中台 | |
CN112181663A (zh) | 一种内存调度方法、装置及计算机设备 | |
CN115544304A (zh) | 文件解析方法、装置、可读存储介质及文件解析设备 | |
CN114237799B (zh) | 一种页面指定区域灰度化方法及装置 | |
CN110968858A (zh) | 一种用户权限控制方法及系统 | |
CN110022351B (zh) | 一种业务请求的处理方法和装置 | |
CN106843819B (zh) | 对象序列化的方法及装置 | |
CN108804088B (zh) | 协议处理方法和装置 | |
CN112732252A (zh) | 一种动态生成ui的方法、装置和电子设备 | |
CN110554867B (zh) | 一种应用程序的处理方法和装置 | |
CN111090825A (zh) | 一种网页内容动态定制方法 | |
CN110633564B (zh) | 文件生成方法和装置 | |
CN113672470A (zh) | 一种接口监控方法、装置、设备及介质 | |
CN110968991A (zh) | 一种文字的编辑方法及相关装置 | |
CN111198899A (zh) | 应用程序中实体渲染的开发系统及方法 | |
CN112925527B (zh) | 一种调用方法、装置、存储介质及电子设备 | |
CN111857451B (zh) | 信息编辑交互方法、装置、存储介质和处理器 | |
CN112449314B (zh) | 一种工业互联网平台的短信服务方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |