掌桥专利:专业的专利平台
掌桥专利
首页

应用页面的动态换肤方法、装置、设备、存储介质及产品

文献发布时间:2024-04-18 19:59:31


应用页面的动态换肤方法、装置、设备、存储介质及产品

技术领域

本申请实施例涉及计算机技术领域,尤其涉及一种应用页面的动态换肤方法、装置、设备、存储介质及产品。

背景技术

随着智能终端的普及,其功能也日渐丰富。当前,智能终端的操作系统大多配备了不同的主题模式,例如浅色主题和深色主题的适配以供用户选择。以深色主题为例,其将界面显示颜色变更为深色,在降低应用的耗电量的同时还能提升用户对内容的关注度,在夜间能够减少用户浏览以及阅读页面的疲劳感,对用户体验和机器性能具有积极影响,是目前流行的主题配置方式之一。

相关技术中,在进行主题的换肤切换时,需要重启应用页面的窗口组件,无法实现实时的动态换肤。在换肤过程中,需要进行复杂的逻辑处理,如对当前显示界面中的UI元素进行识别,判断使用的主题,并相应的进行颜色设置与应用,换肤效率低下。

发明内容

本申请实施例提供了一种应用页面的动态换肤方法、装置、设备、存储介质及产品,在应用页面的换肤过程中,无需重启窗口组件即可实现动态换肤功能,且无需复杂的处理逻辑,避免了大量逻辑判断代码的使用,优化了代码结构的同时提高了动态换肤效率。

第一方面,本申请实施例提供了一种应用页面的动态换肤方法,该方法包括:

在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息;

将所述换肤信息注入至所述视图元素中;

在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

第二方面,本申请实施例还提供了一种应用页面的动态换肤装置,包括:

解析模块,配置为在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息;

信息注入模块,配置为将所述换肤信息注入至所述视图元素中;

色值更新模块,配置为在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

第三方面,本申请实施例还提供了一种应用页面的动态换肤设备,该设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请实施例所述的应用页面的动态换肤方法。

第四方面,本申请实施例还提供了一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请实施例所述的应用页面的动态换肤方法。

第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行本申请实施例所述的应用页面的动态换肤方法。

本申请实施例中,在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息,将换肤信息注入至所述视图元素中,在检测到页面换肤事件触发的情况下,获取视图元素中记录的换肤信息,依据换肤信息对视图元素的界面颜色进行更新。上述方案,在视图元素创建过程中进行换肤信息的注入,将换肤信息注入至视图元素,在页面换肤事件触发时,直接利用视图元素中注入的换肤信息进行视图元素的界面颜色的更新,以实现动态换肤,无需重启窗口组件。同时,在生成换肤信息时,对设置的换肤属性集合中的换肤属性进行解析,无需解析系统原生的与换肤相关的属性信息以及其它程序设置的换肤属性,提高了解析效率,能够实现快速的换肤信息的注入。

附图说明

图1为本申请实施例提供的一种应用页面的动态换肤方法的流程图;

图2为本申请实施例提供的另一种应用页面的动态换肤方法的流程图;

图3为本申请实施例提供的另一种应用页面的动态换肤方法的流程图;

图4为本申请实施例提供的另一种应用页面的动态换肤方法的流程图;

图5为本申请实施例提供的一种应用页面的动态换肤装置的结构框图;

图6为本申请实施例提供的一种应用页面的动态换肤设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请实施例,而非对本申请实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请实施例相关的部分而非全部结构。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

本申请实施例提供的应用页面的动态换肤方法,执行主体可以是智能终端,如智能手机、笔记本电脑、平板电脑等,该应用页面的动态换肤方法可应用于终端设备进行主题切换时实现动态的换肤,如将当前浅色主题模式切换为深色主题模式时的换肤处理。以深色主题的切换为例,其应用场景可以是基于换肤的全局深色模式、会话页面基于换肤的隐私会话模式、语聊房等。针对全局深色模式而言,示例性的,可以根据当地的日出日落情况,实时的在浅色模式和深色模式之间进行切换;针对隐私会话模式而言,可以是当用户开启隐私会话模式,需要将会话页切换至深色模式,以提示用户已经进入隐私会话模式;针对语聊房场景而言,支持独立的主题配置,可独立于全局深色模式。

图1为本申请实施例提供的一种应用页面的动态换肤方法的流程图,如图1所示,包括如下步骤:

步骤S101、在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息。

在智能终端开启后,会生成相应的应用页面。该应用页面可以是智能终端操作系统生成的系统页面,也可以是安装的应用程序启动的页面。其包括智能终端设备开启后显示的任一页面。该应用页面为进行界面元素显示、动画效果展示等智能终端生成的用于和用户交互、展示给用户浏览的页面。

其中,视图元素为应用页面中展示的可用于和用户进行交互、供用户浏览的元素。如各类控件、页面背景、显示的文字图片等。

在一个实施例中,在应用页面的视图元素创建过程中,可通过设置的代码程序对该视图元素创建过程进行拦截,以将生成的换肤信息注入至视图元素中。其中,包括对设置的换肤属性集合中的换肤属性进行解析生成换肤信息。该设置的换肤属性集合中包括多个换肤属性,而系统原生的非换肤属性的原生属性不被定义在该换肤属性集合中。示例性的,以安卓系统为例,可通过视图元素的declare-styleable方式进行换肤属性集合的定义,由于该换肤属性集合中未包括非换肤属性的原生属性,由此提高了解析速度。可选的,在进行换肤属性的定义时,可针对本方案定义的换肤属性设置色值标识以前缀标记的方式,标识为本方案实施例在进行动态换肤时使用的换肤属性,针对换肤属性集合中的换肤属性,未使用预先定义的色值标识的换肤属性,不进行解析,以进一步提高解析速度。

在一个实施例中,在对视图元素进行声明时,同时在自定义属性中添加了与操作系统原生属性同名的属性,以实现对原生属性的换肤支持。在现有应用页面中无需修改属性名称的情况下,仅需将颜色值替换为相应的换肤色值标识,即可完成换肤适配。相较于传统方法,该种模式能够降低代码修改的量,减少对已有代码的侵入性,同时也大大节省了开发工时。上述的高度兼容的换肤方式为业务接入带来了明显的便利。通过统一属性定义,提升工程可维护性,相对于使用两套不同属性的传统方法,通过统一属性定义的做法使得代码结构更加清晰易懂,从而提升了工程的可维护性。

步骤S102、将换肤信息注入至视图元素中。

在一个实施例中,针对解析生成的换肤信息,将其注入至视图元素中,以用于后续进行该视图元素的动态换肤。可选的,注入过程可以使用智能终端操作系统提供的注入方法进行换肤信息的注入。以安卓操作系统为例,可通过使用setTag()方法,将换肤信息注入至视图元素,以在视图元素中进行换肤信息的记录。示例性的如:view.setTag(R.id.skin_x_info,skinInfo)。在后续触发页面换肤事件时,每个视图元素根据各自注入的换肤信息进行颜色设置以实现对应主题下的颜色模式。

步骤S103、在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

其中,该页面换肤事件可以是由用户手动触发的换肤事件,也可以是系统自动触发的换肤事件。如用户手动进行浅色主题或深色主题的设置后,相应触发该页面换肤事件;又如,在检测到暗部环境下,或者确定出当前时间为当地日落时间时,触发该页面换肤事件。

在一个实施例中,当页面换肤事件触发时,直接获取视图元素中记录的换肤信息,基于该换肤信息对视图元素的界面颜色进行更新。以前述示例解释为例,视图元素中记录的换肤信息为view.setTag(R.id.skin_x_info,skinInfo),针对该视图元素通过记录的换肤信息获取对应主题下的界面颜色值,将当前的界面颜色值更新为获取到的界面颜色。可选的,可预先进行色值系统的创建,在该色值系统中记录有各个主体下不同视图元素的色值,以进行视图元素的换肤时查询使用。示例性的片段记录如下:

在一个实施例中,进行主题的具体换肤切换时,可通过设置的视图换肤处理接口实现。该视图换肤处理接口通过设置的不同类型的实现类调用视图元素设置的色值进行界面颜色的修改。示例性的,可分别通过设置的实现类实现文字主题处理器、背景主题处理器、图片主题处理器以及透明主题处理器,分别进行文字、背景、图片和透明度的修改。

由上述可知,在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息,将换肤信息注入至所述视图元素中,在检测到页面换肤事件触发的情况下,获取视图元素中记录的换肤信息,依据换肤信息对视图元素的界面颜色进行更新。上述方案,在视图元素创建过程中进行换肤信息的注入,将换肤信息注入至视图元素,在页面换肤事件触发时,直接利用视图元素中注入的换肤信息进行视图元素的界面颜色的更新,以实现动态换肤,无需重启窗口组件。同时,在生成换肤信息时,对设置的换肤属性集合中的换肤属性进行解析,无需解析系统原生的与换肤相关的属性信息以及其它程序设置的换肤属性,提高了解析效率,能够实现快速的换肤信息的注入。

在一个实施例中,换肤信息包括换肤属性值,对视图元素的界面颜色进行更新的过程可以是:获取换肤属性值在页面换肤事件对应的换肤肤色下的主题颜色值,基于主题颜色值对视图元素的界面颜色进行更新。可选的,在进行主题资源的配置过程中,通过采用主题(theme)和属性(attr)机制进行主题资源的配置,来消除繁杂的逻辑判断,保证了动态换肤框架资源的可维护性。其中,属性仅定义了资源的名称,在主题中进行赋值。可选的,可针对每个换肤肤色创建一个主题,业务方通过换肤属性值进行换肤配置,通过获取换肤属性值在页面换肤事件对应的换肤肤色下的主题颜色值实现界面颜色的更新。由此只需关注不同的换肤属性以及不同换肤肤色下的主题颜色值,取代了繁琐的逻辑判断。示例性的,主题和属性的实现方式如下:

上述方式中,实现了对应用内多套主题同时共存的情况的支持,以在页面切换时相对应地进行主题切换,提供了一种对于不同业务线支持不同主题的设计框架。

图2为本申请实施例提供的另一种应用页面的动态换肤方法的流程图,可兼容系统原生的换肤功能,如图2所示,包括:

步骤S201、在应用页面的视图元素创建过程中,确定所述应用页面是否适配有换肤框架。

在一个实施例中,进行本方案的动态换肤的过程中能够对系统原有的换肤功能进行兼容。可选的,本方案的应用页面的动态换肤方法基于预先配置的换肤框架实现。该换肤框架中可选的包括主题管理器、换肤信息构造器、换肤布局工厂类以及视图换肤处理接口。

可选的,在应用页面的视图元素创建过程中,针对不同的应用页面预先配置有换肤框架,而针对其它页面不进行换肤框架的配置。可选的,为了快速适配大型项目,可将项目内的应用页面预先划分为主流程页面和次要页面,针对主流程页面适配动态换肤,提供精细化的换肤适配;针对次要页面不进行动态换肤的适配,采用系统原有的换肤功能进行换肤适配,以达到快速适配所有页面的换肤功能。可选的,确定应用页面是否适配有换肤框架的方式可以是预先进行应用页面的标记,针对适配换肤框架的应用页面采用预先设置的标记值进行标记,或者预先定义适配换肤框架的应用页面,通过查询该定义的内容的方式确定应用页面是否适配有换肤框架。

步骤S202、响应于未适配有换肤框架的判断结果,开启系统内置的强制反色功能,以用于所述应用页面的换肤处理,并基于原生布局工厂类进行所述视图元素的创建。

其中,系统原生内置的换肤功能以强制反色(Force Dark)功能为例,针对未适配换肤框架的应用页面,开启该内置的强制反色功能,以用于应用页面的换肤处理。其中,通过该强制反色功能进行应用页面的换肤过程为使用系统原有的换肤功能进行换肤,通过算法改变视图的明暗程度,实现黑色背景主题,而不需要为黑色主题提供单独的主题资源,具体换肤方式此处不再赘述。

其中,在开启系统内置的强制反色功能的情况下,不对视图元素进行额外的换肤元素的注入,此时基于原生布局工厂类进行视图元素的创建即可。

步骤S203、响应于适配有换肤框架的判断结果,将所述换肤信息注入至基于换肤布局工厂类创建的视图元素中。

在一个实施例中,针对适配有换肤框架的应用页面,可基于设置的换肤布局工厂类创建视图元素,而不适用系统原生布局工厂类进行创建。在利用设置的换肤布局工厂类创建视图元素的过程中,将换肤信息注入至视图元素。其中,该换肤布局工厂类实现对原有的视图元素创建的拦截,通过读取换肤属性进行解析生成换肤信息后注入至视图元素中。

步骤S204、在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

由上述可知,通过判断应用页面是否适配有换肤框架,在未适配有换肤框架的情况下,开启系统内置的强制反色功能,以用于应用页面的换肤处理,能够良好的对系统原生的换肤功能进行兼容,针对大型项目可以部分利用本方案提供的换肤框架进行换肤,而部分应用页面使用系统原有的换肤功能实现换肤,能够针对性的对主要的应用页面执行换肤信息的注入实现动态换肤,而针对相对次要页面采用系统原有的换肤功能实现换肤,保证了大型项目的快速上线。

图3为本申请实施例提供的另一种应用页面的动态换肤方法的流程图,对换肤信息的生成过程进行了优化,如图3所示,包括:

步骤S301、在应用页面的视图元素创建过程中,通过设置的解析模块对设置的换肤属性集合中的换肤属性进行解析,生成键值格式的字符串。

在一个实施例中,在进行换肤属性的解析时,为了提高后续的换肤信息的注入效率,进行换肤属性的解析时生成键值格式的字符串。可选的,通过设置的解析模块执行,该解析模块可以换肤信息构造器的形式实现,该换肤信息构造器用于构建视图元素实例的换肤配置,将解析得到的换肤数据如textColor、background等转换为键值key-value格式的字符串,以进行换肤信息的记录,其中key字段记录换肤类别,value字段记录对应的该类别的颜色值的标识。

步骤S302、通过标签设置函数,将所述键值格式的字符串注入至所述视图元素中。

在一个实施例中,进行换肤信息的注入时,可通过标签设置函数,以安卓系统为例为View.setTag()进行键值格式的字符串的注入。

步骤S303、在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

由上述可知,在应用页面的视图元素创建过程中,即通过标签设置函数将键值格式的字符串注入至视图元素中,通过动态的换肤信息的分发,避免了在页面打开时出现闪动的情况。对于未进行首次创建的应用页面,可保留使用页面可见时进行换肤分发的逻辑。

图4为本申请实施例提供的另一种应用页面的动态换肤方法的流程图,如图4所示,包括:

步骤S401、在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息。

步骤S402、对应用页面的视图元素树进行遍历得到父视图元素以及子视图元素,将所述换肤信息注入至所述父视图元素以及所述子视图元素。

在一个实施例中,进行换肤信息的注入时,对应用页面的视图元素树进行遍历得到父视图元素以及子视图元素,分别进行各个视图元素的换肤信息的注入。可选的,视图元素树的遍历方式采用深度优先遍历。在换肤信息的注入过程中,每个视图元素会记录当前的skinIndex,如前所述使用View.setTag()方法进行实现。可选的,在进行父视图元素以及子视图元素的换肤信息注入过程中,即针对所有视图元素的换肤信息的动态添加过程中,可采用不同的策略执行换肤信息的注入。可选的,第一种可以是:将换肤信息注入至父视图元素中,通过设置的层次变化监听器监听到父视图元素的换肤信息注入事件的情况下,同步进行子视图元素的换肤信息的注入;第二种可以是:将换肤信息注入至父视图元素中,在子视图元素添加至父视图元素时,在子视图元素的布局变更回调中,将换肤信息注入至子视图元素中。针对第一种情况,对于一些高性能的视图元素组件,如RecyclerView和ViewPager,可以使用HierarchyChangeListener(层次变化监听器),即采用setOnHierarchyChangeListener方法进行换肤逻辑的同步,该种方法通常不会主动使用,其安全性较高。可选的,对于自定义视图,如果确定出其不使用setOnHierarchyChangeListener,则可通过为自定义视图添加注解的方式,使其实例的换肤分发仍通过setOnHierarchyChangeListener方法进行。针对上述的第二种情况而言,当子视图元素被添加到父视图元素时,requestLayout()方法必定会被调用,进而触发onLayoutChange回调,在该时机下,通过在onLayoutChange回调中同步子视图的skinIndex,实现了子视图与父视图的skinIndex同步。该种方式尽管可能触发多次回调,但由于在换肤信息注入时进行了skinIndex的判断,实际上只会触发一次换肤分发。因此保证了视图添加监听接口的安全性,性能开销较小。

步骤S403、在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

由上述可知,上述通过采用不同的策略进行换肤信息的注入,针对高性能分组下的视图元素可采用第一种方式,针对通用分组下的视图元素采用第二种方式进行换肤信息的分发注入,能够针对不同的视图元素采用合理高效的方式完成各级视图元素的换肤信息的注入。。

在上述技术方案的基础上,可选的,还包括:在弹窗视图创建的过程中,确定弹窗视图关联的宿主窗口是否开启换肤功能,在宿主窗口开启换肤功能,且弹窗视图触发页面换肤事件的情况下,执行弹窗视图的换肤处理。其中,针对弹窗视图的换肤处理中,考虑到弹窗视图类似于Activity窗口,其具有自己的窗口,但其主题需要跟随宿主Activity,同时保持了弹窗视图的独立换肤特性,需要判断弹窗视图是否接入宿主窗口的换肤功能,即关联的宿主窗口是否开启换肤功能。可选的,可通过检查弹窗视图使用的LayoutInflater的Factory2是否是BIUISkinLayoutInflaterFactory的实例确定其关联的宿主窗口是否开启换肤功能,如果不是,则表征宿主窗口未接入换肤逻辑,此时弹窗视图无需进行换肤,否则执行弹窗视图的换肤处理。可选的,弹窗视图的换肤处理过程可以是向换肤框架中的主体管理器进行注册,以开启换肤流程。

在上述技术方案的基础上,可选的,包括:在所述应用页面中存在网页页面视图的情况下,基于当前系统的版本信息确定换肤处理方式,并在监听到页面换肤事件时,基于所述换肤处理方式进行换肤处理。

其中,针对网页页面视图的换肤处理,遵循w3c标准,具体适配根据不同的操作系统版本采用不同方式处理。以安卓系统为例,版本小于Android 13时,使用WebSettingsCompat.setForceDark方法,通过设置为FORCE_DARK_ON或FORCE_DARK_OFF来启用或关闭强制暗黑模式;版本大于等于Android 13时,通过WebSettingsCompat.setAlgorithmicDarkeningAllowed方法设置,网页页面视图根据系统自动感应进行换肤处理。

可选的,网页页面视图适配时,通过读取prefers-color-scheme属性来判断是否需要进行换肤。如果属性值为dark,则执行换肤逻辑;如果属性值为light,则无需进行换肤。

上述的弹窗视图和网页页面视图为单独适配的独立的换肤处理流程,确保了适配的灵活性和准确性。同时,在网页页面视图的适配时,针对不同的Android系统版本,采用不同的适配方式,以确保适配的有效性和稳定性。

图5为本申请实施例提供的一种应用页面的动态换肤装置的结构框图,如图5所示,该装置用于执行上述实施例提供的应用页面的动态换肤方法,具备执行方法相应的功能模块和有益效果。如图5所示,该装置具体包括:解析模块101、信息注入模块102以及色值更新模块103,其中,

解析模块101,配置为在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息;

信息注入模块102,配置为将所述换肤信息注入至所述视图元素中;

色值更新模块103,配置为在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

由上述可知,在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息,将换肤信息注入至所述视图元素中,在检测到页面换肤事件触发的情况下,获取视图元素中记录的换肤信息,依据换肤信息对视图元素的界面颜色进行更新。上述方案,在视图元素创建过程中进行换肤信息的注入,将换肤信息注入至视图元素,在页面换肤事件触发时,直接利用视图元素中注入的换肤信息进行视图元素的界面颜色的更新,以实现动态换肤,无需重启窗口组件。同时,在生成换肤信息时,对设置的换肤属性集合中的换肤属性进行解析,无需解析系统原生的与换肤相关的属性信息以及其它程序设置的换肤属性,提高了解析效率,能够实现快速的换肤信息的注入。

在一个可能的实施例中,该装置还包括兼容设置模块,配置为:

在所述对设置的换肤属性集合中的换肤属性进行解析生成换肤信息之前,确定所述应用页面是否适配有换肤框架;

响应于未适配有换肤框架的判断结果,开启系统内置的强制反色功能,以用于所述应用页面的换肤处理,并基于原生布局工厂类进行所述视图元素的创建。

在一个可能的实施例中,所述信息注入模块102,具体配置为:

响应于适配有换肤框架的判断结果,将所述换肤信息注入至基于换肤布局工厂类创建的视图元素中。

在一个可能的实施例中,所述解析模块101,具体配置为:

通过设置的解析模块对设置的换肤属性集合中的换肤属性进行解析,生成键值格式的字符串。

在一个可能的实施例中,所述信息注入模块102,具体配置为:

通过标签设置函数,将所述键值格式的字符串注入至所述视图元素中。

在一个可能的实施例中,所述换肤信息包括换肤属性值,所述色值更新模块103,配置为:

获取所述换肤属性值在所述页面换肤事件对应的换肤肤色下的主题颜色值;

基于所述主题颜色值对所述视图元素的界面颜色进行更新。

在一个可能的实施例中,所述信息注入模块102还配置为:

在将所述换肤信息注入至所述视图元素之前,对所述应用页面的视图元素树进行遍历得到父视图元素以及子视图元素;

将所述换肤信息注入至所述父视图元素以及所述子视图元素。

在一个可能的实施例中,所述信息注入模块102,具体配置为:

将所述换肤信息注入至所述父视图元素中,通过设置的层次变化监听器监听到所述父视图元素的换肤信息注入事件的情况下,同步进行所述子视图元素的换肤信息的注入;或者,

将所述换肤信息注入至所述父视图元素中,在所述子视图元素添加至所述父视图元素时,在所述子视图元素的布局变更回调中,将所述换肤信息注入至所述子视图元素中。

在一个可能的实施例中,该装置还包括弹窗处理模块,配置为:

在弹窗视图创建的过程中,确定所述弹窗视图关联的宿主窗口是否开启换肤功能;

在所述宿主窗口开启换肤功能,且所述弹窗视图触发页面换肤事件的情况下,执行所述弹窗视图的换肤处理。

在一个可能的实施例中,该装置还包括网页处理模块,配置为:

在所述应用页面中存在网页页面视图的情况下,基于当前系统的版本信息确定换肤处理方式,并在监听到页面换肤事件时,基于所述换肤处理方式进行换肤处理。

图6为本申请实施例提供的一种应用页面的动态换肤设备的结构示意图,如图6所示,该设备包括处理器201、存储器202、输入装置203和输出装置204;设备中处理器201的数量可以是一个或多个,图6中以一个处理器201为例;设备中的处理器201、存储器202、输入装置203和输出装置204可以通过总线或其他方式连接,图6中以通过总线连接为例。存储器202作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的应用页面的动态换肤方法对应的程序指令/模块。处理器201通过运行存储在存储器202中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的应用页面的动态换肤方法。输入装置703可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置204可包括显示屏等显示设备。

本申请实施例还提供一种包含计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种上述实施例描述的应用页面的动态换肤方法,其中,包括:

在应用页面的视图元素创建过程中,对设置的换肤属性集合中的换肤属性进行解析生成换肤信息;

将所述换肤信息注入至所述视图元素中;

在检测到页面换肤事件触发的情况下,获取所述视图元素中记录的换肤信息,依据所述换肤信息对所述视图元素的界面颜色进行更新。

值得注意的是,上述应用页面的动态换肤装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。

在一些可能的实施方式中,本申请提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行本申请实施例所记载的应用页面的动态换肤方法。所述程序产品可以采用一个或多个可读介质的任意组合实现。

相关技术
  • 一种测距轮喷漆装置操作机构及带有喷漆功能的测距轮
  • 一种用于测距轮的喷漆组件和带有喷漆功能的测距轮
技术分类

06120116516198