视图皮肤更换方法、装置、存储介质及电子设备制造方法及图纸

技术编号:36038322 阅读:12 留言:0更新日期:2022-12-21 10:43
本申请实施例公开了一种视图皮肤更换方法、装置、存储介质及电子设备。该方法包括:收集应用程序中需要更换皮肤的视图及对应的视图属性;加载皮肤插件中的资源文件,获取资源属性值;通过宿主APK和皮肤插件APK的资源标识进行动态匹配,将获取的资源属性值设置到对应视图的视图属性上。本方案中,将不同的皮肤插件存放在服务器中动态下载到本地,可以灵活配置多种不同的皮肤插件,对业务无侵入式地完成应用程序的皮肤更换。应用程序的皮肤更换。应用程序的皮肤更换。

【技术实现步骤摘要】
视图皮肤更换方法、装置、存储介质及电子设备


[0001]本申请涉及电子设备
,尤其涉及一种视图皮肤更换方法、装置、存储介质及电子设备。

技术介绍

[0002]随着电子设备处理能力和存储能力的迅猛发展,海量的应用程序(APP)得到了迅速传播和使用,提高了用户的生活质量以及使用中的娱乐感。
[0003]许多APP都具有皮肤更换功能,可以根据用户本身的爱好定制本身的界面。皮肤即组成屏幕上界面的元素属性及其之间的关系,即界面上控件的属性,如背景色、字体颜色、图片及布局等。皮肤可以由一组配置文件组成,有对应系统的通用配置文件用来定义通用属性。对于换肤,其本质是更换页面元素(view或viewGroup)的属性值,这些属性值可以用资源文件表示。也即,换肤的实质是替换掉资源文件,例如,更换背景、更换文字颜色等。
[0004]目前,换肤方式为手动重新设置界面资源。也即,在业务代码里面手动进行设置新皮肤的逻辑,当新皮肤下发时,回调该逻辑重新设置界面资源,达到换肤逻辑。然而,此方案是业务侵入式的,需要手写代码进行换肤,存在维护成本。另外,该方式需要手动写重新设置界面的逻辑,无法对所有的控件都更换界面资源,存在一定的局限性。

技术实现思路

[0005]本申请实施例提供一种视图皮肤更换方法、装置、存储介质及电子设备,可以提高视图皮肤更换效果。
[0006]第一方面,本申请实施例提供一种视图皮肤更换方法,包括:
[0007]收集应用程序中需要更换皮肤的视图及对应的视图属性;
[0008]加载皮肤插件中的资源文件,获取资源属性值,其中,所述皮肤插件由服务器下发至本地;
[0009]通过宿主APK和皮肤插件APK的资源标识进行动态匹配,将获取的资源属性值设置到对应视图的视图属性上。
[0010]第二方面,本申请实施例提供了一种视图皮肤更换装置,包括:
[0011]收集单元,用于收集应用程序中需要更换皮肤的视图及对应的视图属性;
[0012]获取单元,用于加载皮肤插件中的资源文件,获取资源属性值,其中,所述皮肤插件由服务器下发至本地;
[0013]设置单元,用于通过宿主APK和皮肤插件APK的资源标识进行动态匹配,将获取的资源属性值设置到对应视图的视图属性上。
[0014]在一实施方式中,所述收集单元进一步用于:
[0015]对应用程序的视图进行解析;
[0016]基于视图解析结果,收集需要进更新皮肤的视图及对应需要更新皮肤的视图属性。
[0017]在一实施方式中,在基于视图解析结果,收集需要进更新皮肤的视图及对应需要更新皮肤的视图属性时,所述收集单元具体用于:
[0018]判断应用程序的视图是否需要更新皮肤;
[0019]若是,则创建换肤类,并初始化所述换肤类的视图成员变量;
[0020]遍历所述皮肤控件的视图属性,筛选出需要更换皮肤的视图属性;
[0021]将筛选出的视图属性添加到所述换肤类持有的属性集合中。
[0022]在一实施方式中,在对应用程序的视图进行解析时,所述收集单元具体用于:
[0023]监听所述应用程序的生命周期;
[0024]当检测到所述应用程序的界面启动时,拦截所述应用程序的视图,并通过视图初始化预留接口实现对所述视图的解析。
[0025]在一实施方式中,所述获取单元进一步用于:
[0026]获取宿主资源文件;
[0027]通过反射执行构造器方法加载系统皮肤插件资源,生成皮肤插件对应的资源文件。
[0028]在一实施方式中,所述设置单元进一步用于:
[0029]基于宿主APK中视图属性的资源标识,在皮肤插件APK的资源文件中查找对应的资源属性值;
[0030]通过预设属性设置方法,将查找到的资源属性值设置到对应的视图属性上。
[0031]在一实施方式中,所述宿主APK与所述皮肤插件APK的结构一致。
[0032]第四方面,本申请实施例还提供了一种电子设备,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,处理器用于执行上述的视图皮肤更换方法。
[0033]本申请实施中,通过收集应用程序中需要更换皮肤的视图及对应的视图属性;加载皮肤插件中的资源文件,获取资源属性值;通过宿主APK和皮肤插件APK的资源标识进行动态匹配,将获取的资源属性值设置到对应视图的视图属性上。本方案中,将不同的皮肤插件存放在服务器中动态下载到本地,可以灵活配置多种不同的皮肤插件,对业务无侵入式地完成应用程序的皮肤更换。
附图说明
[0034]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是本申请实施例提供的视图皮肤更换方法的一流程示意图。
[0036]图2是本申请实施例提供的视图皮肤更换方法的另一流程示意图。
[0037]图3是本申请实施例提供的视图皮肤更换方法的另一流程示意图。
[0038]图4是本申请实施例提供的视图皮肤更换方法的另一流程示意图。
[0039]图5是本申请实施例提供的视图皮肤更换装置的一结构示意图。
[0040]图6是本申请实施例提供的电子设备的一结构示意图。
[0041]图7是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
[0042]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0043]基于此,本申请实施例提供一种视图皮肤更换方法、装置、存储介质及电子设备。以下将分别进行详细说明。
[0044]在一实施例中,提供一种视图皮肤更换方法,应用于智能手机、平板电脑、笔记本电脑等电子设备中,该电子设备的操作系统可以为Android(安卓)系统。参考图1,该视图皮肤更换方法的具体流程可以如下:
[0045]101、收集应用程序中需要更换皮肤的视图及对应的视图属性。
[0046]本实施例中,应用程序可以为安装在电子设备中的任意一应用程序,也可以是预先指定的应用程序。具体的,通过分析电子设备的系统源码后,可以知道系统中界面的层级布局。以Android系统为例,Activity内部维护PhoneWindow,在PhoneWindow里面维护页面容器DecorView,在DecorView里面通过LayoutInflater解析布局xml文件,通过addView的方式设置到id为content的FrameLayout。
[0047]本方案中,可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种视图皮肤更换方法,其特征在于,包括:收集应用程序中需要更换皮肤的视图及对应的视图属性;加载皮肤插件中的资源文件,获取资源属性值,其中,所述皮肤插件由服务器下发至本地;通过宿主APK和皮肤插件APK的资源标识进行动态匹配,将获取的资源属性值设置到对应视图的视图属性上。2.根据权利要求1所述的视图皮肤更换方法,其特征在于,所述收集应用程序中需要更换皮肤的视图及对应的视图属性,包括:对应用程序的视图进行解析;基于视图解析结果,收集需要进更新皮肤的视图及对应需要更新皮肤的视图属性。3.根据权利要求2所述的视图皮肤更换方法,其特征在于,所述基于视图解析结果,收集需要进更新皮肤的视图及对应需要更新皮肤的视图属性,包括:判断应用程序的视图是否需要更新皮肤;若是,则创建换肤类,并初始化所述换肤类的视图成员变量;遍历所述皮肤控件的视图属性,筛选出需要更换皮肤的视图属性;将筛选出的视图属性添加到所述换肤类持有的属性集合中。4.根据权利要求2所述的视图皮肤更换方法,其特征在于,所述对应用程序的视图进行解析,包括:监听所述应用程序的生命周期;当检测到所述应用程序的界面启动时,拦截所述应用程序的视图,并通过视图初始化预留接口实现对所述视图的解析。5.根据权利要求1所述的视图皮肤更换方法,其特征在于,所述加载皮肤插件中的资源文件,包括:获取宿主资源文件;通过反射执行构造器方法加载系统皮肤插件资源,生...

【专利技术属性】
技术研发人员:王伟涛
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

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

1