CN106651992B - 优化Android资源图片的方法及系统 - Google Patents
优化Android资源图片的方法及系统 Download PDFInfo
- Publication number
- CN106651992B CN106651992B CN201611020825.5A CN201611020825A CN106651992B CN 106651992 B CN106651992 B CN 106651992B CN 201611020825 A CN201611020825 A CN 201611020825A CN 106651992 B CN106651992 B CN 106651992B
- Authority
- CN
- China
- Prior art keywords
- picture
- static
- data
- resource
- animation
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种优化Android资源图片的方法及系统,涉及Android资源图片的优化领域。该方法的步骤为:将需要优化的资源图片转换为svg格式的xml转换文件;资源图片为静态图片时,获取xml转换文件的图片数据和颜色值并设置唯一id;创建静态图片显示文件,在静态图片显示文件中新建与唯一id关联的图片填充颜色属性和图片形状属性;加载静态图片显示文件,根据关联的颜色值和图片数据,渲染生成svg格式的资源图片。本发明能够将资源图片转换为svg格式后进行解析和重新绘制,重新绘制后的资源图片在缩放时,能够保证图片的清晰度,进而保证了智能手机的性能。
Description
技术领域
本发明涉及Android资源图片的优化领域,具体涉及一种优化Android资源图片的方法及系统。
背景技术
当前Android系统开发中,随着业务需求的不断增多,Android应用安装包的大小也在逐步增大;安装包中的图片资源文件的格式一般为光栅文件格式(例如GIF、JPEG),由于不同类型的智能手机中的资源图片的尺寸不同,而且光栅文件格式的图片资源文件缩放后会破坏图像的清晰度,因此Android系统的安装包中需要放置多套尺寸不同的图片资源文件,进而匹配不同类型的智能手机。
但是,因为图片的存储单位是图像上每一点的像素值,所以图片资源文件的容量很大,而放置多套图片资源文件会占用大量的网络带宽,进而降低智能手机的性能。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:将资源图片转换为svg格式后进行解析和重新绘制。本发明重新绘制后的资源图片在缩放时,能够保证图片的清晰度,进而保证了智能手机的性能。
为达到以上目的,本发明提供的优化Android资源图片的方法,包括以下步骤:
步骤A:将需要优化的资源图片转换为svg格式的xml转换文件,转到步骤B01;
步骤B01:当所述资源图片为静态图片时,获取xml转换文件的图片数据和颜色值,分别对图片数据和颜色值设置唯一id后保存,转到步骤B02;
步骤B02:创建与静态图片名称对应的xml格式的静态图片显示文件,在静态图片显示文件中新建图片填充颜色属性和图片形状属性;为填充颜色属性创建与步骤B01中所述颜色值相同的唯一id,为图片形状属性创建与步骤B01中所述图片数据相同的唯一id,转到步骤B03;
步骤B03:加载静态图片显示文件,当加载到填充颜色属性和图片形状属性时,查找与填充颜色属性的唯一id相同的颜色值,查找与图片形状属性的唯一id相同的图片数据;根据查找到的颜色值和图片数据,渲染生成svg格式的资源图片。
与现有技术相比,本发明的优点在于:
(1)本发明将资源图片转换为svg格式后进行解析和重新绘制,因此与现有技术中光栅文件格式的资源图片相比,本发明能够将Android应用安装包的资源图片格式变为svg格式,svg格式的资源图片在缩放时能够保证图片的清晰度,进而保证了智能手机的性能。
(2)本发明重新绘制的静态图片能够替换颜色值和图片数据,进而能够随时更新静态图片,进一步增加了资源图片的优化效果。
(3)本发明重新绘制的资源图片以字符串的形式存在,与图片资源相比,字符串占用的空间非常下,进而提高了智能手机的性能。
附图说明
图1为本发明实施例中优化Android资源图片的方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中的优化Android资源图片的方法,包括以下流程:
S1:利用图片转换工具(例如Photoshop),将需要优化的资源图片转换为svg格式(Scalable Vector Graphics,可缩放矢量图形格式)的xml转换文件。
S2:确认xml转换文件中资源图片的类型,若资源图片为静态图片,转到S3,若资源图片为动态图片,转到S4。
S3:对静态图片的xml转换文件进行解析、并在Android中进行绘制,具体流程为:
S301:获取xml转换文件的path(环境变量)标签,从path标签中获取图片数据(pathdata,使用图片数据可得到图片的原始形状)和对应的颜色值(storkecolor,使用颜色值进行绘制就可以得到该图片的完整图像),分别对图片数据和颜色值设置唯一id后,将设置有唯一id图片数据和颜色值放入Android系统的字符串中集中,转到302。
S302:Android应用在开发时,会在drawable下创建与静态图片名称对应的xml格式的静态图片显示文件,在静态图片显示文件中定义1个vector(矢量)标签(该标签就是需要生成的图片的长宽数据)。在vector标签中创建1个path标签,在path标签中新建图片填充颜色(fillcolor)属性和图片形状属性;为填充颜色属性创建与S301中颜色值相同的唯一id,为图片形状属性创建与S301中图片数据相同的唯一id,转到S303。
S303:加载静态图片显示文件,当加载到填充颜色属性和图片形状属性时,在Android系统的字符串中,查找与填充颜色属性的唯一id相同的颜色值,查找与图片形状属性的唯一id相同的图片数据;根据查找到的颜色值和图片数据,渲染生成可以识别的svg格式的资源图片,转到S304。
S304:使用Android自带的Imageview的src标签去加载生成svg格式的资源图片。当需要根据服务器所设置的需求更换图片时,S304的具体工作流程为:向服务器请求获取资源图片信息,图片信息包括以字符串形式存在的颜色值和图片数据;判断服务器返回的颜色值和图片数据,是否与本地资源图片的颜色值和图片数据相同,若是,直接显示本地的资源图片,否则将本地资源图片的颜色值和图片数据,替换为服务器返回的颜色值和图片数据后再进行显示。
S4:对动态图片的xml转换文件进行解析、并在Android中进行绘制,具体流程为:
S401:获取xml转换文件的每一幅动态图片的图片数据,为每幅图片数据设置1个唯一名称(name),转到S402。
S402:在drawable下创建动态图片的xml格式的动画效果文件;在动画效果文件获取所有动画片段的轨迹数据(获取方式为在Android的animator中,使用“@animator/动画文件名”来获取),根据S401中的唯一名称,确定与每段轨迹数据相应的图片数据,转到S403。
S403:在每段轨迹数据中设置动画的时间长度(android:duration,单位为毫秒)和属性(trimPathEnd,表示绘制由开始点到绘制结束点);由字符串生成的轨迹数据省去了图片资源所占的空间,转到S404。
S404:使用Android的AnimatedVectorDrawable建立动画模型,在动画模型中加载所有轨迹数据和相应的图片数据,将所有轨迹数据在时序上相关联,将所有图片数据在时序上相关联;将关联后的所有轨迹数据和所有图片数据形成动画播放文件。将动画播放文件加载至Android的imageview,即可进行播放。
本发明实施例提供的实现上述方法的优化Android资源图片的系统,包括svg格式转换模块、静态参数获取模块、静态显示文件创建模块、静态图片加载模块、静态图片替换模块、动态参数获取模块、动态轨迹数据获取模块、动画参数设置模块和动画加载模块。
svg格式转换模块用于:将需要优化的资源图片转换为svg格式的xml转换文件,当资源图片为静态图片时,向静态参数获取模块发送静态参数获取信号;当资源图片为动态图片时,向动态参数获取模块发送动态参数获取信号。
静态参数获取模块用于:收到静态参数获取信号后,获取xml转换文件的图片数据和颜色值,分别对图片数据和颜色值设置唯一id后放入Android系统的字符串中,向静态显示文件创建模块发送静态显示文件创建信号。
静态显示文件创建模块用于:收到静态显示文件创建信号后,创建与静态图片名称对应的xml格式的静态图片显示文件,在静态图片显示文件中新建图片填充颜色属性和图片形状属性;为填充颜色属性创建与静态参数获取模块中颜色值相同的唯一id,为图片形状属性创建与静态参数获取模块中图片数据相同的唯一id,向静态图片加载模块发送静态图片加载信号。
静态图片加载模块用于:收到静态图片加载信号后,加载静态图片显示文件,当加载到填充颜色属性和图片形状属性时,在Android系统的字符串中查找与填充颜色属性的唯一id相同的颜色值,查找与图片形状属性的唯一id相同的图片数据;根据查找到的颜色值和图片数据,渲染生成svg格式的资源图片。
静态图片替换模块用于:在静态图片加载模块工作完成之后,向服务器请求获取资源图片信息,资源图片信息包括颜色值和图片数据;判断服务器返回的颜色值和图片数据,是否与本地资源图片的颜色值和图片数据相同,若是,直接显示本地的资源图片,否则将本地资源图片的颜色值和图片数据,替换为服务器返回的颜色值和图片数据后再进行显示。
动态参数获取模块用于:收到动态参数获取信号后,获取xml转换文件的每一幅动态图片的图片数据,为每幅图片数据设置1个唯一名称,向动态轨迹数据获取模块发送动态轨迹数据获取信号。
动态轨迹数据获取模块用于:收到动态轨迹数据获取信号后,创建动态图片的xml格式的动画效果文件;在动画效果文件获取所有动画片段的轨迹数据,根据动态参数获取模块中所述唯一名称,确定与每段轨迹数据相应的图片数据,向动画参数设置模块发送动画参数设置信号。
动画参数设置模块用于:收到动画参数设置信号后,在每段轨迹数据中设置动画的时间长度和属性,向动画加载模块发送动画加载信号。
动画加载模块用于:收到动画加载信号后,建立动画模型,在动画模型中加载所有轨迹数据和相应的图片数据,将所有轨迹数据在时序上相关联,将所有图片数据在时序上相关联;将关联后的所有轨迹数据和所有图片数据形成动画播放文件。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (4)
1.一种优化Android资源图片的方法,其特征在于,该方法包括以下步骤:
步骤A:将需要优化的Android应用安装包的资源图片转换为svg格式的xml转换文件,xml转换文件中的资源图片为静态图片时,转到步骤B01;
步骤B01:获取xml转换文件的静态图片数据和颜色值,分别对图片数据和颜色值设置唯一id后放入Android系统的字符串中保存,转到步骤B02;
步骤B02:创建与静态图片名称对应的xml格式的静态图片显示文件,在静态图片显示文件中新建图片填充颜色属性和图片形状属性;为填充颜色属性创建与步骤B01中所述颜色值相同的唯一id,为图片形状属性创建与步骤B01中所述图片数据相同的唯一id,转到步骤B03;
步骤B03:加载静态图片显示文件,当加载到填充颜色属性和图片形状属性时,在Android系统的字符串中查找与填充颜色属性的唯一id相同的颜色值、以及与图片形状属性的唯一id相同的图片数据;根据查找到的颜色值和图片数据,渲染生成svg格式的资源图片;
步骤B04:向服务器请求获取资源图片信息,资源图片信息包括颜色值和图片数据;判断服务器返回的颜色值和图片数据,是否与本地资源图片的颜色值和图片数据相同,若是,直接显示本地的资源图片,否则将本地资源图片的颜色值和图片数据,替换为服务器返回的颜色值和图片数据后再进行显示。
2.如权利要求1所述的优化Android资源图片的方法,其特征在于:当步骤A中所述xml转换文件中的资源图片为动态图片时,转到步骤C01;
步骤C01:获取xml转换文件的每一幅动态图片的图片数据,为每幅图片数据设置1个唯一名称,转到步骤C02;
步骤C02:创建动态图片的xml格式的动画效果文件;在动画效果文件获取所有动画片段的轨迹数据,根据步骤C01中所述唯一名称,确定与每段轨迹数据相应的图片数据,转到步骤C03;
步骤C03:在每段轨迹数据中设置动画的时间长度和属性,转到步骤C04;
步骤C04:建立动画模型,在动画模型中加载所有轨迹数据和相应的图片数据,将所有轨迹数据在时序上相关联,将所有图片数据在时序上相关联;将关联后的所有轨迹数据和所有图片数据形成动画播放文件。
3.一种实现权利要求1所述方法的优化Android资源图片的系统,其特征在于:该系统包括svg格式转换模块、静态参数获取模块、静态显示文件创建模块和静态图片加载模块;
svg格式转换模块用于:将需要优化的Android应用安装包的资源图片转换为svg格式的xml转换文件,当xml转换文件中的资源图片为静态图片时,向静态参数获取模块发送静态参数获取信号;
静态参数获取模块用于:收到静态参数获取信号后,获取xml转换文件的图片数据和颜色值,分别对图片数据和颜色值设置唯一id后放入Android系统的字符串中保存,向静态显示文件创建模块发送静态显示文件创建信号;
静态显示文件创建模块用于:收到静态显示文件创建信号后,创建与静态图片名称对应的xml格式的静态图片显示文件,在静态图片显示文件中新建图片填充颜色属性和图片形状属性;为填充颜色属性创建与静态参数获取模块中颜色值相同的唯一id,为图片形状属性创建与静态参数获取模块中图片数据相同的唯一id,向静态图片加载模块发送静态图片加载信号;
静态图片加载模块用于:收到静态图片加载信号后,加载静态图片显示文件,当加载到填充颜色属性和图片形状属性时,在Android系统的字符串中查找与填充颜色属性的唯一id相同的颜色值,在Android系统的字符串中查找与图片形状属性的唯一id相同的图片数据;根据查找到的颜色值和图片数据,渲染生成svg格式的资源图片;
该系统还包括静态图片替换模块,其用于:在静态图片加载模块工作完成之后,向服务器请求获取资源图片信息,资源图片信息包括颜色值和图片数据;判断服务器返回的颜色值和图片数据,是否与本地资源图片的颜色值和图片数据相同,若是,直接显示本地的资源图片,否则将本地资源图片的颜色值和图片数据,替换为服务器返回的颜色值和图片数据后再进行显示。
4.如权利要求3所述的优化Android资源图片的系统,其特征在于:该系统还包括动态参数获取模块、动态轨迹数据获取模块、动画参数设置模块和动画加载模块;
当xml转换文件中的资源图片为动态图片时,svg格式转换模块会向动态参数获取模块发送动态参数获取信号;
动态参数获取模块用于:收到动态参数获取信号后,获取xml转换文件的每一幅动态图片的图片数据,为每幅图片数据设置1个唯一名称,向动态轨迹数据获取模块发送动态轨迹数据获取信号;
动态轨迹数据获取模块用于:收到动态轨迹数据获取信号后,创建动态图片的xml格式的动画效果文件;在动画效果文件获取所有动画片段的轨迹数据,根据动态参数获取模块中所述唯一名称,确定与每段轨迹数据相应的图片数据,向动画参数设置模块发送动画参数设置信号;
动画参数设置模块用于:收到动画参数设置信号后,在每段轨迹数据中设置动画的时间长度和属性,向动画加载模块发送动画加载信号;
动画加载模块用于:收到动画加载信号后,建立动画模型,在动画模型中加载所有轨迹数据和相应的图片数据,将所有轨迹数据在时序上相关联,将所有图片数据在时序上相关联;将关联后的所有轨迹数据和所有图片数据形成动画播放文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611020825.5A CN106651992B (zh) | 2016-11-18 | 2016-11-18 | 优化Android资源图片的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611020825.5A CN106651992B (zh) | 2016-11-18 | 2016-11-18 | 优化Android资源图片的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106651992A CN106651992A (zh) | 2017-05-10 |
CN106651992B true CN106651992B (zh) | 2021-01-01 |
Family
ID=58808132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611020825.5A Active CN106651992B (zh) | 2016-11-18 | 2016-11-18 | 优化Android资源图片的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106651992B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874477B (zh) * | 2017-05-11 | 2021-06-15 | 武汉斗鱼网络科技有限公司 | 一种显示静态图片和动态图片的方法和装置 |
CN107220067A (zh) * | 2017-06-29 | 2017-09-29 | 广州优视网络科技有限公司 | 安卓系统下的可缩放矢量图形图片的加载方法和装置 |
CN108846872A (zh) * | 2018-07-09 | 2018-11-20 | 苏州浪潮智能软件有限公司 | 一种图像处理方法及装置 |
CN109828757B (zh) * | 2019-01-16 | 2022-04-15 | 珠海天燕科技有限公司 | 一种应用程序的桌面显示方法及装置 |
CN110286960B (zh) * | 2019-06-27 | 2022-07-22 | 北京金山安全软件有限公司 | 图像文件的加载方法、装置、电子设备和存储介质 |
CN111080745B (zh) * | 2019-11-18 | 2023-04-28 | 福建天泉教育科技有限公司 | 一种PowerPoint中图片重新着色的方法及终端 |
CN112732643B (zh) * | 2021-04-01 | 2021-07-20 | 南京国睿信维软件有限公司 | 流程图图形文件数据与s1000d标准xml格式数据的相互转换方法 |
CN114066710A (zh) * | 2022-01-17 | 2022-02-18 | 山东捷瑞数字科技股份有限公司 | 一种占位图的图像生成方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360884A (zh) * | 2014-11-18 | 2015-02-18 | 久邦计算机技术(广州)有限公司 | 一种基于安卓系统的插件资源包加载方法 |
CN105427353A (zh) * | 2015-11-12 | 2016-03-23 | 小米科技有限责任公司 | 可缩放矢量图形的压缩、绘制方法及装置 |
CN106095460A (zh) * | 2016-06-21 | 2016-11-09 | 上海联彤网络通讯技术有限公司 | 实现终端内嵌浏览器优化网页加载的系统及方法 |
-
2016
- 2016-11-18 CN CN201611020825.5A patent/CN106651992B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360884A (zh) * | 2014-11-18 | 2015-02-18 | 久邦计算机技术(广州)有限公司 | 一种基于安卓系统的插件资源包加载方法 |
CN105427353A (zh) * | 2015-11-12 | 2016-03-23 | 小米科技有限责任公司 | 可缩放矢量图形的压缩、绘制方法及装置 |
CN106095460A (zh) * | 2016-06-21 | 2016-11-09 | 上海联彤网络通讯技术有限公司 | 实现终端内嵌浏览器优化网页加载的系统及方法 |
Non-Patent Citations (3)
Title |
---|
Android ImageView and Drawable with SVG Support;diov;《https://www.codeproject.com/articles/136239/android-imageview-and-drawable-with-svg-support》;20101214;第1-5页 * |
手把手教学,android使用SVG;四会歌神陈子豪;《https://www.jianshu.com/p/5c81970ddf33》;20160913;第1-14页 * |
针对SVG的性能优化;lfsf802;《https://blog.csdn.net/lfsf802/article/details/40628453》;20141030;第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106651992A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106651992B (zh) | 优化Android资源图片的方法及系统 | |
CN106846495B (zh) | 实现增强现实的方法与装置 | |
JP7149031B2 (ja) | プラットフォーム及びイメージデバイスの間の通信プロトコル | |
CN107943363B (zh) | 背景图像的配置方法及装置、交互智能平板及存储介质 | |
CN111310866B (zh) | 数据标注方法、装置、系统和终端设备 | |
CN109472852B (zh) | 点云图像的显示方法及装置、设备及存储介质 | |
CN102122502A (zh) | 一种三维字体显示方法以及相关装置 | |
CN106055295A (zh) | 图片处理方法、图片绘制方法及装置 | |
CN103176996A (zh) | 基于图片特征信息的图片搜索方法及图片搜索引擎服务器 | |
CN115439609B (zh) | 基于地图服务的三维模型渲染方法、系统、设备及介质 | |
CN105227873A (zh) | 一种在屏显示数据的测试方法和装置 | |
CN115731313A (zh) | Svg格式的图片的处理方法、装置、设备、介质及产品 | |
CN102568021B (zh) | 一种基于flash的画面播放方法及系统 | |
CN106155677A (zh) | 一种界面显示的方法和系统 | |
CN112487871B (zh) | 笔迹数据处理方法、装置及电子设备 | |
CN112565766A (zh) | 视频传输方法、装置及存储介质 | |
CN106233278A (zh) | 针对图像的图块创建图像数据 | |
CN103488380A (zh) | 一种信息展示方法及装置 | |
CN104079368B (zh) | 一种应用软件的测试数据传输方法及服务器 | |
CN114125485B (zh) | 图像处理方法、装置、设备及介质 | |
WO2015052968A1 (ja) | サーバ装置、クライアント装置、情報処理方法および記録媒体 | |
CN109189524A (zh) | 一种图像资源的生成方法和装置 | |
CN115209215A (zh) | 视频处理方法、装置及设备 | |
CN115756452A (zh) | 目标页面代码的生成方法、设备、存储介质及程序产品 | |
CN112199538B (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 |