CN102810060B - 一种安致图片资源配置方法及装置 - Google Patents

一种安致图片资源配置方法及装置 Download PDF

Info

Publication number
CN102810060B
CN102810060B CN201110145862.XA CN201110145862A CN102810060B CN 102810060 B CN102810060 B CN 102810060B CN 201110145862 A CN201110145862 A CN 201110145862A CN 102810060 B CN102810060 B CN 102810060B
Authority
CN
China
Prior art keywords
picture resource
self
skin
title
android
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
Application number
CN201110145862.XA
Other languages
English (en)
Other versions
CN102810060A (zh
Inventor
马斌
万鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110145862.XA priority Critical patent/CN102810060B/zh
Publication of CN102810060A publication Critical patent/CN102810060A/zh
Application granted granted Critical
Publication of CN102810060B publication Critical patent/CN102810060B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提出了一种Android图片资源配置方法及装置,属于手机应用领域,本发明通过按照预设的命名规则对Android程序中的图片资源进行重命名,得到图片资源的自定义名称,生成图片资源的自定义名称、图片资源的ID与图片资源的映射关系,并保存在映射表中,获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中。通过本发明所提供的图片资源配置方法,建立了Android程序中的图片资源的名称和ID的双向映射关系,可以进行动态识别图片,从而使得Android程序更换皮肤时,不需要重启Android程序即可完成皮肤更换。

Description

一种安致图片资源配置方法及装置
技术领域
本发明涉及手机应用领域,特别涉及一种Android图片资源配置方法及装置。
背景技术
Android(安致)一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
在Android系统中,Android系统本身提供了一套简单的图片资源管理、显示主题配置功能。在Android系统的图片资源管理中,通过建立ID(Identity,标识号码)与图片资源的单向映射关系,实现对图片资源的管理,并可以实现手机应用程序的皮肤更换功能。
在发明人实现本发明的过程中,发明人发现现有的Android系统对图片资源进行管理时至少存在如下缺点:
Android系统本身提供的图片资源管理功能较弱,不能进行动态识别图片,导致更换Android程序的皮肤的时候,需要重启Android程序才能对皮肤进行更换。
发明内容
为了解决现有技术中存在的问题,本发明提出了一种Android图片资源配置方法及装置。所述技术方案如下:
一种Android图片资源配置方法,所述方法包括:
按照预设的命名规则对Android程序中的图片资源进行重命名,得到所述图片资源的自定义名称,所述图片资源的自定义名称中至少包括所述图片资源所属的皮肤的皮肤编号和所述图片资源的原有名称;
生成所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并保存在映射表中,且所述图片资源的ID与所述图片资源的自定义名称之间的映射关系为双向映射;
获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中。
进一步地,所述按照预设的命名规则对Android程序中的图片资源进行重命名之前,所述方法还包括:
将所述Android程序中的图片资源划分为可动态更换图片资源和不可动态更换图片资源;
相应地,所述按照预设的命名规则对Android程序中的图片资源进行重命名,具体包括:
按照预设的命名规则对Android程序中的可动态更换图片资源进行重命名。
进一步地,所述按照预设的命名规则对Android程序中的图片资源进行重命名,得到所述图片资源的自定义名称,包括:
将所述图片资源的自定义名称放入所述Android程序的Drawable子类目录中。
进一步地,所述生成所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并保存在映射表中,具体包括:
通过JAVA的反射机制获取所述Drawable子类中的所述图片资源的ID及对应的每个图片资源的自定义名称,建立所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并生成映射表,将所述映射关系保存在所述映射表中。
进一步地,所述获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中,具体包括:
在所述Android程序启动时,解析所述Android程序的UI配置可扩展标记语言XML文件,获取所述Android程序当前皮肤所使用的图片资源的原有名称,生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID。
进一步地,所述生成自定义UI对象,具体包括:
对Android系统生成UI对象进行拦截,生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,并将自定义UI对象保存在自定义路径中,同时将所述UI配置XML文件中保存的加载UI对象的命令修改为自定义路径。
进一步地,当收到更换皮肤的命令时,所述方法还包括:
获取目标皮肤的编号;
获取所述当前皮肤中的图片资源的自定义名称,根据所述预设的命名规则和所述目标皮肤的编号得到所述目标皮肤的图片资源的自定义名称;
根据所述目标皮肤的图片资源的自定义名称通过所述映射表获取所述目标皮肤的图片资源;
使用所述目标皮肤的图片资源对所述UI对象中当前的图片资源进行替换,完成皮肤的动态更换。
进一步地,所述完成皮肤的动态更换之后,所述方法还包括:
当所述Android程序退出时,将所述目标皮肤的皮肤编号保存在所述Android程序的皮肤管理器中,当所述Android程序再次启动时,在所述皮肤管理器中读取所述目标皮肤的编号,加载所述目标皮肤。
一种Android图片资源配置装置,所述装置包括:
自定义名称模块,用于按照预设的命名规则对Android程序中的图片资源进行重命名,得到所述图片资源的自定义名称,所述图片资源的自定义名称中至少包括所述图片资源所属的皮肤的皮肤编号和所述图片资源的原有名称;
映射表建立模块,用于生成所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并保存在映射表中,且所述图片资源的ID与所述图片资源的自定义名称之间的映射关系为双向映射;
自定义UI对象建立模块,用于获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中。
进一步地,所述装置还包括:
图片资源划分模块,用于在所述自定义名称模块按照预设的命名规则对Android程序中的图片资源进行重命名之前,将所述Android程序中的图片资源划分为可动态更换图片资源和不可动态更换图片资源;
相应地,所述自定义名称模块具体用于,按照预设的命名规则对Android程序中的可动态更换图片资源进行重命名,得到所述可动态更换图片资源的自定义名称。
进一步地,所述自定义名称模块,具体包括:
自定义名称保存单元,用于将所述图片资源的自定义名称放入所述Android程序的Drawable子类目录中。
进一步地,所述映射表建立模块,具体包括:
自定义名称获取单元,用于通过JAVA的反射机制获取所述Drawable子类中的所述图片资源的ID及对应的每个图片资源的自定义名称;
映射表建立单元,用于建立所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并生成映射表,将所述映射关系保存在所述映射表中。
进一步地,所述自定义UI对象建立模块,具体包括:
第一名称获取单元,用于在所述Android程序启动时,解析所述Android程序的UI配置可扩展标记语言XML文件,获取所述Android程序当前皮肤所使用的图片资源的原有名称;
自定义UI对象建立单元,用于生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID。
进一步地,所述自定义UI对象建立单元,用于对Android系统生成UI对象进行拦截,生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,并将自定义UI对象保存在自定义路径中,同时将所述UI配置XML文件中保存的加载UI对象的命令修改为自定义路径。
进一步地,所述装置还包括:
皮肤更换模块,用于在收到更换皮肤的命令时,更换皮肤;
所述皮肤更换模块,具体包括:
编号获取单元,用于获取目标皮肤的编号;
第二名称获取单元,用于获取所述当前皮肤中的图片资源的自定义名称,根据所述预设的命名规则和所述目标皮肤的编号得到所述目标皮肤的图片资源的自定义名称;
图片资源获取单元,用于根据所述目标皮肤的图片资源的自定义名称通过所述映射表获取所述目标皮肤的图片资源;
更换单元,用于使用所述目标皮肤的图片资源对所述UI对象中当前的图片资源进行替换,完成皮肤的动态更换。
进一步地,所述皮肤更换模块,还包括:
记录单元,用于在所述更换单元完成皮肤的动态更换之后,当所述Android程序退出时,将所述目标皮肤的皮肤编号保存在所述Android程序的皮肤管理器中,当所述Android程序再次启动时,在所述皮肤管理器中读取所述目标皮肤的编号,加载所述目标皮肤。
本发明实施例提供的技术方案的有益效果是:通过本发明所提供的图片资源配置方法,建立了Android程序中的图片资源的名称和ID的双向映射关系,可以进行动态识别图片,从而使得Android程序更换皮肤时,不需要重启Android程序即可完成皮肤更换。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中使用的附图并做简单地介绍,显而易见地,下面所列附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中所提供的一种Android图片资源配置方法的流程示意图;
图2为本发明实施例2所提供的一种Android图片资源配置方法的流程示意图;
图3为本发明实施例3所提供的一种Android图片资源配置装置的结构示意图;
图4为本发明实施例3所提供的一种Android图片资源配置装置的第二种结构示意图;
图5为本发明实施例3所提供的一种Android图片资源配置装置中的自定义名称模块的结构示意图;
图6为本发明实施例3所提供的一种Android图片资源配置装置中的映射表建立模块的结构示意图;
图7为本发明实施例3所提供的一种Android图片资源配置装置中的自定义UI对象建立模块的结构示意图
图8为本发明实施例3所提供的一种Android图片资源配置装置的第三种结构示意图;
图9为本发明实施例3所提供的一种Android图片资源配置装置中的皮肤更换模块的结构示意图
图10为本发明实施例3所提供的一种Android图片资源配置装置中的皮肤更换模块的第二种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例1提出了一种Android图片资源配置方法,其流程如图1所示,该方法包括:
步骤101、按照预设的命名规则对Android程序中的图片资源进行重命名,得到图片资源的自定义名称;
步骤102、生成图片资源的自定义名称、图片资源的ID与图片资源的映射关系,并保存在映射表中;
步骤103、获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义UI(User Interface,用户界面)对象中。
本发明实施例所提供的一种Android图片资源配置方法,建立了Android程序中的图片资源的名称和ID的双向映射关系,可以进行动态识别图片,从而使得Android程序更换皮肤时,不需要重启Android程序即可完成皮肤更换。
实施例2
本发明实施例2提出了一种Android图片资源配置方法,是在实施例1基础上改进而来,其流程如图2所示,具体如下:
步骤201、按照预设的命名规则对Android程序中的图片资源进行重命名,得到图片资源的自定义名称;
需要说明的是,在Android程序的每套皮肤中可能由多个图片资源组成,在本发明中,按照预设的命名规则对Android程序中的图片资源进行命名时,该图片资源的自定义名称中至少包括皮肤编号(用以指示该图片资源属于哪一套皮肤)、该图片资源的原有名称。
进一步地,在对Android程序中的图片资源进行重命名之前,还可以包括:将Android程序中的图片资源划分为可动态更换图片资源和不可动态更换图片资源;
相应地,在步骤201中,只对可动态更换图片资源按照预设的命名规则进行重命名,而不可动态更换图片资源保留其原有名称。
在本实施例中,预设的命名规则可以为:所述图片资源的名称以字母s开头,并依次包括该图片资源所属的皮肤编号、下划线“_”、该图片资源的原有名称。
例如,第一套皮肤共包括五张图片,具体为一张背景图片和四张按钮图片,且上述五张图片原名称分别为“bg”、“but1”、“but2”、“but3”、“but4”,根据预设的命名规则重命名后为“s0_bg”、“s0_but1”、“s0_but2”、“s0_but3”、“s0_but4”。
第二套皮肤共包括五张图片,具体为一张背景图片和四张按钮图片,且第二套皮肤的五张图片原名称分别为“bg”、“but1”、“but2”、“but3”、“but4”,根据预设的命名规则重命名后为“s1_bg”、“s1_but1”、“s1_but2”、“s1_but3”、“s1_but4”。
进一步地,在将Android程序中的图片资源进行重命名后,还包括:将图片资源的自定义名称放入Android程序的Drawable子类目录中。
步骤202、生成图片资源的自定义名称、ID与图片资源的映射关系,并保存在映射表中;
需要说明的是,在Android系统中,当Android程序在编译的时候,会生成一个名称为R的类,R类中的子类管理着每个资源的唯一ID,其中图片资源作为Drawable子类,通过对Drawable子类的应用可以使用其中的图片资源。
在本发明实施例中,生成Android程序中的图片资源的自定义名称、图片资源的ID与图片资源的映射关系,并保存在映射表中,具体包括:
通过JAVA的反射机制获取Drawable子类中每个图片资源的ID及对应的每个图片资源的自定义名称,并生成映射表,该映射表存储有每个图片资源的ID及对应的每个图片资源的自定义名称的对应关系。
在本实施例中,可将上述映射表命名为Key,并以每个图片资源的ID及对应的每个图片资源的自定义名称作为映射表中的值,且每个图片资源的ID与对应的每个图片资源的自定义名称之间的映射关系为双向映射,即通过图片资源的ID可查询得到对应的图片资源的自定义名称,或通过图片资源的自定义名称可查询得到图片资源的ID,并得到对应的图片资源。
需要说明的是,在现有的Android系统对图片资源的管理中,只保存有图片资源的ID与图片资源的单向映射关系,只能够通过图片资源的ID获取图片资源,而本发明实施例所提供的方法,可通过图片资源的ID和图片资源的自定义名称获取对应的图片资源。
步骤203、获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义UI对象中;
需要说明的是,在Android程序中包括一个皮肤管理器,该皮肤管理器中记录有当前使用的皮肤的编号,在Android程序加载皮肤时,可从皮肤管理器中获得当前使用的皮肤的编号,因此,在自定义UI对象中只保存有图片资源的原有名称即可。在加载皮肤时,可通过预设的命名规则和当前使用的皮肤编号获取图片资源的全称(自定义名称)。
进一步地,获取Android程序所使用的图片资源的原有名称,并保存在UI对象中,具体的包括:
在Android程序启动时,解析Android程序的UI配置XML(ExtensibleMarkup Language,可扩展标记语言)文件,获取Android程序当前皮肤所使用的图片资源的原有名称,生成自定义UI对象,并在自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,,其中,UI配置XML文件中保存有当前皮肤所使用的图片资源的原有名称以及对应的图片资源的ID。
需要说明的是,在现有的Android系统中,Android程序启动时,会生成一个工具类Inflater,该工具类Inflater根据UI配置XML文件中定义的文本内容,生成相应的View树,并保存在Android系统路径com.android.widget下,该View树即为UI对象,在View树中包括多个节点,每个View节点中指示了当前皮肤中的一个图片资源的ID,当Android程序在手机屏幕上显示皮肤时,在Android系统路径com.android.widget下读取View树,通过该View树中的节点在UI配置XML文件中获取当前皮肤所使用的图片资源ID。
而在本实施例中,生成自定义UI对象,并在自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,具体的为:
对Android系统生成UI对象进行拦截,生成自定义UI对象,并在自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,并将自定义UI对象保存在自定义路径中,同时将UI配置XML文件中保存的加载UI对象的命令修改为自定义路径。
例如,在本实施例中,可将自定义UI对象定义为TextView类,将自定义路径设置为com.tencetn.adnroid.pad.view.TextView。
需要说明的是,将UI配置XML文件中保存的加载UI对象的命令修改为自定义路径的好处是,在加载自定义UI对象时,需要“完整的自定义UI对象路径+自定义UI对象名称”,例如“com.tencetn.adnroid.pad.view.TextView”,而做了上述修改后,在加载自定义UI对象时,只写自定义UI对象名称即可,例如只需要写“TextView”即可。
步骤204、当接收到更换皮肤的命令时,获取目标皮肤的编号;
步骤205、获取当前皮肤中的图片资源的自定义名称,根据预设的命名规则和目标皮肤的编号得到目标皮肤的图片资源的自定义名称;
其中,根据预设的命名规则和目标皮肤的编号得到目标皮肤的图片资源的自定义名称,具体的包括:
将当前皮肤中的图片资源的自定义名称中的皮肤编号,根据预设的命名规则替换为目标皮肤的编号。
例如:当前使用的皮肤为第一套皮肤,通过加载自定义UI对象获得第一套皮肤所使用的图片资源的自定义名称“s0_bg”、“s0_but1”、“s0_but2”、“s0_but3”、“s0_but4”,目标皮肤为第二套皮肤,第二套皮肤的编号为1,则根据预设的命名规则,将第一套皮肤所使用的图片资源的自定义名称中包含的皮肤编号全部替换为1,得到目标皮肤的图片资源的自定义名称为“s1_bg”、“s1_but1”、“s1_but2”、“s1_but3”、“s1_but4”。
步骤206、根据目标皮肤的图片资源的自定义名称通过映射表获取对应的图片资源。
步骤207、使用目标皮肤的图片资源对UI对象中当前的图片资源进行替换,完成皮肤的动态更换。
进一步地,使用目标皮肤的图片资源对UI对象中当前的图片资源进行替换,具体的为,使用invalidate函数对当前窗口进行重绘,将目标皮肤的图片资源加载到当前界面,以完成目标皮肤的更换。
其中,invalidate函数为JAVA提供的函数,可以使特定区域无效,并发出重绘的命令,在本发明实现时,通过使用invalidate函数可完成对皮肤中的每个图片资源的重绘,直至将该套皮肤中的全部图片进行重绘完成对整套皮肤的动态更换。
进一步地,在完成皮肤的动态更换之后,本方法还可以包括:
在Android程序退出时,将目标皮肤的皮肤编号存入皮肤管理器,当Android程序第二次启动时,通过步骤203中所述的方法加载目标皮肤,使得以目标皮肤作为新的当前皮肤。
本发明实施例所提供的一种Android图片资源配置方法,建立了Android程序中的图片资源的名称和ID的双向映射关系,可以进行动态识别图片,从而使得Android程序更换皮肤时,不需要重启Android程序即可完成皮肤更换。
实施例3
本发明实施例3提出了一种Android图片资源配置装置,其结构如图3所示,具体包括:
自定义名称模块301,用于按照预设的命名规则对Android程序中的图片资源进行重命名,得到图片资源的自定义名称;
映射表建立模块302,用于生成图片资源的自定义名称、图片资源的ID与图片资源的映射关系,并保存在映射表中;
自定义UI对象建立模块303,用于获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中。
进一步地,如图4所示,上述装置还包括:
图片资源划分模块304,用于在自定义名称模块301按照预设的命名规则对Android程序中的图片资源进行重命名之前,将Android程序中的图片资源划分为可动态更换图片资源和不可动态更换图片资源;
相应地,自定义名称模块301具体用于,按照预设的命名规则对Android程序中的可动态更换图片资源进行重命名,得到可动态更换图片资源的自定义名称。
进一步地,如图5所示,自定义名称模块301,具体包括:
重命名单元3011,用于按照预设的命名规则对Android程序中的图片资源进行重命名,使图片资源的自定义名称中至少包括图片资源所属的皮肤的皮肤编号和图片资源的原有名称;
自定义名称保存单元3012,用于将图片资源的自定义名称放入Android程序的Drawable子类目录中。
进一步地,如图6所示,映射表建立模块302,具体包括:
自定义名称获取单元3021,用于通过JAVA的反射机制获取Drawable子类中的图片资源的ID及对应的每个图片资源的自定义名称;
映射表建立单元3022,用于建立图片资源的自定义名称、图片资源的ID与图片资源的映射关系,并生成映射表,将映射关系保存在映射表中。
进一步地,如图7所示,自定义UI对象建立模块303,具体包括:
第一名称获取单元3031,用于在Android程序启动时,解析Android程序的UI配置可扩展标记语言XML文件,获取Android程序当前皮肤所使用的图片资源的原有名称;
自定义UI对象建立单元3032,用于生成自定义UI对象,并在自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID。
进一步地,自定义UI对象建立单元3032,用于对Android系统生成UI对象进行拦截,生成自定义UI对象,并在自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,并将自定义UI对象保存在自定义路径中,同时将UI配置XML文件中保存的加载UI对象的命令修改为自定义路径。
进一步地,如图8所示,上述装置还包括:
皮肤更换模块305,用于在收到更换皮肤的命令时,更换皮肤;
如图9所示,皮肤更换模块305,具体包括:
编号获取单元3051,用于获取目标皮肤的编号;
第二名称获取单元3052,用于获取当前皮肤中的图片资源的自定义名称,根据预设的命名规则和目标皮肤的编号得到目标皮肤的图片资源的自定义名称;
图片资源获取单元3053,用于根据目标皮肤的图片资源的自定义名称通过映射表获取目标皮肤的图片资源;
更换单元3054,用于使用目标皮肤的图片资源对UI对象中当前的图片资源进行替换,完成皮肤的动态更换。
进一步地,如图10所示,皮肤更换模块305,还包括:
记录单元3055,用于在更换单元3054完成皮肤的动态更换之后,当Android程序退出时,将目标皮肤的皮肤编号保存在Android程序的皮肤管理器中,当Android程序再次启动时,在皮肤管理器中读取目标皮肤的编号,加载目标皮肤。
本发明实施例所提供的一种Android图片资源配置装置,建立了Android程序中的图片资源的名称和ID的双向映射关系,可以进行动态识别图片,从而使得Android程序更换皮肤时,不需要重启Android程序即可完成皮肤更换。
需要说明的是:上述实施例提供的Android图片资源配置装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的Android图片资源配置装置与Android图片资源配置方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的全部或部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种Android图片资源配置方法,其特征在于,所述方法包括:
按照预设的命名规则对Android程序中的图片资源进行重命名,得到所述图片资源的自定义名称,所述图片资源的自定义名称中至少包括所述图片资源所属的皮肤的皮肤编号和所述图片资源的原有名称;
生成所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并保存在映射表中,且所述图片资源的ID与所述图片资源的自定义名称之间的映射关系为双向映射;
获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中。
2.根据权利要求1所述的方法,其特征在于,所述按照预设的命名规则对Android程序中的图片资源进行重命名之前,所述方法还包括:
将所述Android程序中的图片资源划分为可动态更换图片资源和不可动态更换图片资源;
相应地,所述按照预设的命名规则对Android程序中的图片资源进行重命名,具体包括:
按照预设的命名规则对Android程序中的可动态更换图片资源进行重命名。
3.根据权利要求1所述的方法,其特征在于,所述按照预设的命名规则对Android程序中的图片资源进行重命名,得到所述图片资源的自定义名称,包括:
将所述图片资源的自定义名称放入所述Android程序的Drawable子类目录中。
4.根据权利要求3所述的方法,其特征在于,所述生成所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并保存在映射表中,具体包括:
通过JAVA的反射机制获取所述Drawable子类中的所述图片资源的ID及对应的每个图片资源的自定义名称,建立所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并生成映射表,将所述映射关系保存在所述映射表中。
5.根据权利要求1所述的方法,其特征在于,所述获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中,具体包括:
在所述Android程序启动时,解析所述Android程序的UI配置可扩展标记语言XML文件,获取所述Android程序当前皮肤所使用的图片资源的原有名称,生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID。
6.根据权利要求5所述的方法,其特征在于,所述生成自定义UI对象,具体包括:
对Android系统生成UI对象进行拦截,生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,并将自定义UI对象保存在自定义路径中,同时将所述UI配置XML文件中保存的加载UI对象的命令修改为自定义路径。
7.根据权利要求1所述的方法,其特征在于,当收到更换皮肤的命令时,所述方法还包括:
获取目标皮肤的编号;
获取所述当前皮肤中的图片资源的自定义名称,根据所述预设的命名规则和所述目标皮肤的编号得到所述目标皮肤的图片资源的自定义名称;
根据所述目标皮肤的图片资源的自定义名称通过所述映射表获取所述目标皮肤的图片资源;
使用所述目标皮肤的图片资源对所述UI对象中当前的图片资源进行替换,完成皮肤的动态更换。
8.根据权利要求7所述的方法,其特征在于,所述完成皮肤的动态更换之后,所述方法还包括:
当所述Android程序退出时,将所述目标皮肤的皮肤编号保存在所述Android程序的皮肤管理器中,当所述Android程序再次启动时,在所述皮肤管理器中读取所述目标皮肤的编号,加载所述目标皮肤。
9.一种Android图片资源配置装置,其特征在于,所述装置包括:
自定义名称模块,用于按照预设的命名规则对Android程序中的图片资源进行重命名,得到所述图片资源的自定义名称,所述图片资源的自定义名称中至少包括所述图片资源所属的皮肤的皮肤编号和所述图片资源的原有名称;
映射表建立模块,用于生成所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并保存在映射表中,且所述图片资源的ID与所述图片资源的自定义名称之间的映射关系为双向映射;
自定义UI对象建立模块,用于获取Android程序当前皮肤所使用的图片资源的原有名称,并保存在自定义用户界面UI对象中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
图片资源划分模块,用于在所述自定义名称模块按照预设的命名规则对Android程序中的图片资源进行重命名之前,将所述Android程序中的图片资源划分为可动态更换图片资源和不可动态更换图片资源;
相应地,所述自定义名称模块具体用于,按照预设的命名规则对Android程序中的可动态更换图片资源进行重命名,得到所述可动态更换图片资源的自定义名称。
11.根据权利要求9所述的装置,其特征在于,所述自定义名称模块,具体包括:
自定义名称保存单元,用于将所述图片资源的自定义名称放入所述Android程序的Drawable子类目录中。
12.根据权利要求11所述的装置,其特征在于,所述映射表建立模块,具体包括:
自定义名称获取单元,用于通过JAVA的反射机制获取所述Drawable子类中的所述图片资源的ID及对应的每个图片资源的自定义名称;
映射表建立单元,用于建立所述图片资源的自定义名称、所述图片资源的ID与所述图片资源的映射关系,并生成映射表,将所述映射关系保存在所述映射表中。
13.根据权利要求9所述的装置,其特征在于,所述自定义UI对象建立模块,具体包括:
第一名称获取单元,用于在所述Android程序启动时,解析所述Android程序的UI配置可扩展标记语言XML文件,获取所述Android程序当前皮肤所使用的图片资源的原有名称;
自定义UI对象建立单元,用于生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID。
14.根据权利要求13所述的装置,其特征在于,所述自定义UI对象建立单元,用于对Android系统生成UI对象进行拦截,生成自定义UI对象,并在所述自定义UI对象中保存当前皮肤使用的图片资源的原有名称以及对应的图片资源的ID,并将自定义UI对象保存在自定义路径中,同时将所述UI配置XML文件中保存的加载UI对象的命令修改为自定义路径。
15.根据权利要求9所述的装置,其特征在于,所述装置还包括:
皮肤更换模块,用于在收到更换皮肤的命令时,更换皮肤;
所述皮肤更换模块,具体包括:
编号获取单元,用于获取目标皮肤的编号;
第二名称获取单元,用于获取所述当前皮肤中的图片资源的自定义名称,根据所述预设的命名规则和所述目标皮肤的编号得到所述目标皮肤的图片资源的自定义名称;
图片资源获取单元,用于根据所述目标皮肤的图片资源的自定义名称通过所述映射表获取所述目标皮肤的图片资源;
更换单元,用于使用所述目标皮肤的图片资源对所述UI对象中当前的图片资源进行替换,完成皮肤的动态更换。
16.根据权利要求15所述的装置,其特征在于,所述皮肤更换模块,还包括:
记录单元,用于在所述更换单元完成皮肤的动态更换之后,当所述Android程序退出时,将所述目标皮肤的皮肤编号保存在所述Android程序的皮肤管理器中,当所述Android程序再次启动时,在所述皮肤管理器中读取所述目标皮肤的编号,加载所述目标皮肤。
CN201110145862.XA 2011-06-01 2011-06-01 一种安致图片资源配置方法及装置 Active CN102810060B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110145862.XA CN102810060B (zh) 2011-06-01 2011-06-01 一种安致图片资源配置方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110145862.XA CN102810060B (zh) 2011-06-01 2011-06-01 一种安致图片资源配置方法及装置

Publications (2)

Publication Number Publication Date
CN102810060A CN102810060A (zh) 2012-12-05
CN102810060B true CN102810060B (zh) 2016-11-09

Family

ID=47233769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110145862.XA Active CN102810060B (zh) 2011-06-01 2011-06-01 一种安致图片资源配置方法及装置

Country Status (1)

Country Link
CN (1) CN102810060B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008997A (zh) * 2017-12-22 2018-05-08 北京酷我科技有限公司 一种app皮肤统一更换的方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049260A (zh) * 2012-12-10 2013-04-17 上海斐讯数据通信技术有限公司 一种软件的用户界面在客户端的显示方法和系统
CN103942037A (zh) * 2013-01-17 2014-07-23 阿里巴巴集团控股有限公司 一种移动设备的主题替换的方法和设备
CN103309667B (zh) * 2013-06-14 2016-03-30 珠海全志科技股份有限公司 安卓系统中定位ui控件及图片修改位置的方法
CN103778211B (zh) * 2014-01-16 2017-08-18 北京乐动卓越科技有限公司 移动终端游戏软件的语言切换方法及装置
CN104007963B (zh) * 2014-05-06 2017-11-07 北京猎豹网络科技有限公司 生成浏览器可读的皮肤文件的方法和装置
CN105138325A (zh) * 2015-08-10 2015-12-09 闻泰通讯股份有限公司 获取电子设备资源的方法
CN106162308A (zh) * 2016-07-22 2016-11-23 四川长虹电器股份有限公司 一种重定向智能电视系统显示界面资源的方法
CN106294663A (zh) * 2016-08-04 2017-01-04 网宿科技股份有限公司 一种电子设备、及其应用的图片处理方法及系统
CN108132990B (zh) * 2017-12-19 2022-05-31 五八有限公司 一种app内置图片的替换方法、装置及存储介质
CN109857508B (zh) * 2019-02-25 2021-09-07 厦门美柚股份有限公司 一种界面皮肤动态更换的方法、系统、设备及其存储介质
CN110187944A (zh) * 2019-04-25 2019-08-30 深圳市布谷鸟科技有限公司 一种基于安卓系统快速换肤的方法
CN110489121B (zh) * 2019-07-04 2024-04-19 北京雷石天地电子技术有限公司 一种皮肤包文件的生成方法及系统
CN110347468A (zh) * 2019-07-11 2019-10-18 网易(杭州)网络有限公司 贴图切换方法、贴图切换装置及电子设备
CN110399130B (zh) * 2019-07-16 2023-10-20 国金证券股份有限公司 一种基于安卓系统的app换肤方法
CN112417822B (zh) * 2019-08-05 2023-11-24 珠海金山办公软件有限公司 一种更换电子表格单元格中图片的方法、装置及电子设备
CN111142970A (zh) * 2019-12-27 2020-05-12 深圳市思迪信息技术股份有限公司 移动app的智能换肤方法及装置
CN111897617B (zh) * 2020-08-12 2021-12-14 腾讯科技(深圳)有限公司 图片加载方法、装置、计算机设备和存储介质
CN113760249A (zh) * 2021-01-05 2021-12-07 北京沃东天骏信息技术有限公司 程序文件的处理方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216765B (zh) * 2008-01-21 2010-06-16 中兴通讯股份有限公司 一种移动终端主题样式的动态变更方法
CN100549952C (zh) * 2008-03-18 2009-10-14 腾讯科技(深圳)有限公司 一种可扩展的皮肤系统及其实现方法
CN101414258B (zh) * 2008-12-03 2011-01-26 腾讯科技(深圳)有限公司 一种对皮肤图片进行变色的方法及装置
CN101788906B (zh) * 2010-01-21 2015-06-10 中兴通讯股份有限公司 资源管理方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108008997A (zh) * 2017-12-22 2018-05-08 北京酷我科技有限公司 一种app皮肤统一更换的方法

Also Published As

Publication number Publication date
CN102810060A (zh) 2012-12-05

Similar Documents

Publication Publication Date Title
CN102810060B (zh) 一种安致图片资源配置方法及装置
US11093216B2 (en) Automatic discovery of microservices from monolithic applications
CN105893094B (zh) 应用程序插件化的实现方法和装置
JP5373900B2 (ja) カスタマイズを伴うコンピュータアプリケーションパッケージ
US20090210481A1 (en) Dynamic mashup creation from a set of resources and resource relationships
CN107133174A (zh) 测试用例代码自动生成装置与方法
CN108229148B (zh) 一种基于Android虚拟机的沙箱脱壳方法及系统
CN104423961B (zh) 一种生成测试脚本的方法及系统
CN110912724A (zh) 一种基于参数驱动的自动业务编排方法及装置
US20170192755A1 (en) Method and Apparatus for Enabling Agile Development of Services in Cloud Computing and Traditional Environments
CN106250104A (zh) 一种针对服务器的远程操作系统、方法及装置
US10360027B2 (en) Automatically extracting a model for the behavior of a mobile application
US20160274874A1 (en) Method and apparatus for processing request
US20230128866A1 (en) Source code conversion from application program interface to policy document
CN108228770A (zh) 一种应用文件来源查询的方法及装置
CN108268609A (zh) 一种文件路径的建立、访问方法和装置
CN109992278A (zh) 一种基于容器的应用程序发布方法及装置
CN107678789A (zh) Ui界面的更新方法及装置
CN107678741B (zh) 列表视图的实现方法、装置、可读存储介质及设备
CN108170430A (zh) 一种界面展示的方法及系统
CN106484452A (zh) 一种软件平台的统一配置管理方法和装置
CN110825373B (zh) 一种移动端动态化方法及装置
JP2019501459A (ja) アプリケーションプログラム実行方法及び装置
US11640281B2 (en) Tool for introspection in object-oriented source code
CN106569816B (zh) 一种渲染方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant