CN105446763A - 一种图片加载与显示的方法及系统 - Google Patents
一种图片加载与显示的方法及系统 Download PDFInfo
- Publication number
- CN105446763A CN105446763A CN201410517523.3A CN201410517523A CN105446763A CN 105446763 A CN105446763 A CN 105446763A CN 201410517523 A CN201410517523 A CN 201410517523A CN 105446763 A CN105446763 A CN 105446763A
- Authority
- CN
- China
- Prior art keywords
- picture
- template
- management module
- subelement
- view
- 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.)
- Granted
Links
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开一种图片加载与显示的方法及系统,本发明将模板与图片加载分开管理,只将当前屏的模板进行图片绘制,从而提高了执行效率,由于模板与预加载的图片最多只有4屏,而其他屏都释放掉图片资源内存,所以降低了内存占用率,同时预加载前后各一频的图片,所以保证了图片浏览的流畅度。
Description
技术领域
本发明涉及图片浏览软件领域,尤其涉及一种图片加载与显示的方法及系统。
背景技术
现有技术中,大部分图片浏览的方式要么是全屏浏览方式,要么是设定宽高比例一致的缩略图方式。这些方式创建的图片是固定好宽高的,因此为图片设置的模板也是相同的,也即一个模板就可以完成。为增加浏览趣味性及友好度,会创新一些大小不一的图片组合进行图片展示,这些图片的宽高剪裁各不相同,每版的排布也不相同,因此无法使用相同的模板,加载方式相应的需要改变,但现有的不规则图片加载与显示方式其执行效率低、内存占用高,流畅度不佳。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种图片加载与显示的方法及系统,旨在解决现有不规则图片加载与显示方式执行效率低、内存占用高、流畅度不佳的问题。
本发明的技术方案如下:
一种图片加载与显示的方法,其中,包括步骤:
A、建立图片列表;
B、创建有效模板管理模块,将初始的模板添加到有效模板管理模块中以对模板进行布局;
C、创建模板图片视图管理模块,将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,并且为每一个模板上每一图片视图创建对应的子单元;
D、创建图片管理模块,在图片管理模块中创建3个分别对应于前一屏、后一屏以及当前屏模板的单元,每一单元包含有对应于相应屏模板上每一图片视图的子单元,同时获取图片列表中各图片的图片路径并赋予图片管理模块中子单元的图片路径变量;
E、创建加载线程模块,将图片管理模块中每个单元所包含的子单元作为一个元素添加到加载线程模块中,通过加载线程进行图片加载;
F、图片加载完毕后,调用图片管理模块的刷新功能对当前屏模板上的图片进行刷新;
G、当进行图片切换时,根据切换方向释放相应的图片资源内存,同时,对模板进行切换,再根据模板id对切换后的模板上的图片进行刷新。
所述的图片加载与显示的方法,其中,所述步骤B具体包括:
当模板数少于4个时,选择静态布局方式进行布局;当模板数为4个或4个以上时,选择动态布局方式进行布局;
在进行布局时,将模板id依序添加到有效模板管理模块中,分别用于显示前一屏、当前屏及后一屏模板上的图片。
所述的图片加载与显示的方法,其中,所述步骤E具体包括:
建立一个加载队列来对加载线程进行管理,当有元素添加到加载队列时,则同时发生一个线程唤醒操作来唤醒加载线程,当加载线程处于活动状态时,查询加载队列,循环进行图片加载。
所述的图片加载与显示的方法,其中,所述步骤F具体包括:
图片加载完毕后,首先查询该图片对应的子单元是否存在,若不存在,则释放图片资源内存,若存在,则将图片资源赋值给对应的子单元;
然后调用图片管理模块的刷新功能,判断图片资源所属项是否指向了一个图片视图id,当是时,则将图片绘制到相应的图片视图,否则不进行图片刷新。
所述的图片加载与显示的方法,其中,所述步骤G具体包括:
当模板数为4个或以上时,先调用图片管理模块的内存释放功能,根据切换方向释放相应的图片资源内存,并将图片管理模块中对应的子单元删除;
再添加一个新的模板,并创建新的单元到模板图片视图管理模块,同时为此新建的单元赋值;创建新的单元到图片管理模块,并为此单元创建新的子单元,为每一子单元进行赋值;然后获取需要加载图片的图片路径依次为图片管理模块的每个子单元的图片路径项赋值;再将图片管理模块的每个子单元作为一个元素添加到加载线程模块进行加载操作;
在切换模板后,模板图片视图管理模块根据模板id查找相应的单元,图片管理模块查询模板id相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元的图片视图id,然后调用图片管理模块刷新功能进行图片刷新。
所述的图片加载与显示的方法,其中,所述步骤G具体包括:
当模板数为3个时,先调用图片管理模块的内存释放功能,根据切换方向释放相应的图片资源内存;
然后获取需要加载图片的图片路径依次为图片管理模块的每个子单元的图片路径项赋值,然后将图片管理模块的每个子单元作为一个元素添加到加载线程模块中进行加载操作;
在切换模板后,模板图片视图管理模块根据模板id查找相应的单元,图片管理模块查询模板id相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元的图片视图id,然后调用图片管理模块刷新功能进行图片刷新。
所述的图片加载与显示的方法,其中,所述步骤G具体包括:
当模板数为2个时,先调用图片管理模块的内存释放功能,根据切换方向释放相应的图片资源内存,并将图片管理模块中对应的子单元删除;
新建一个单元,并为此单元创建新的子单元,将该单元添加到图片管理模块中,查询当前显示模板的模板id,将另一个模板id赋值给此新建的单元,根据模板id查询模板图片视图管理模块中各单元的数据,对图片管理模块中新建的单元中包含的子单元进行赋值,然后获取需加载图片的图片路径依次为每个子单元的图片路径项进行赋值,将图片管理模块中的每个子单元作为一个元素添加到加载线程模块中进行加载操作;
在切换模板后,模板图片视图管理模块根据模板id查找相应的单元,图片管理模块查询模板id相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元的图片视图id,然后调用图片管理模块刷新功能进行图片刷新。
所述的图片加载与显示的方法,其中,所述步骤F中在对图片进行绘制时,设置后一屏模板从左侧进入当前屏,前一屏模板从右侧进入当前屏,当前屏模板在移出当前屏时所空出的空间由进入到当前屏的模板的一部分替换,且进入到当前屏的模板的另一部分不进行绘制。
所述的图片加载与显示的方法,其中,所述步骤E中,加载线程与UI显示的主线程属于异步操作。
一种图片加载与显示的系统,其中,包括:
图片列表创建模块,用于建立图片列表;
有效模板管理模块,用于对模板进行管理,将初始的模板添加到有效模板管理模块中以对模板进行布局;
模板图片视图管理模块,用于对模板上的图片视图进行管理,将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,并且为每一个模板上每一图片视图创建对应的子单元;
图片管理模块,用于对图片进行管理,在图片管理模块中创建3个分别对应于前一屏、后一屏以及当前屏模板的单元,每一单元包含有对应于相应屏模板上每一图片视图的子单元,同时获取图片列表中各图片的图片路径并赋予图片管理模块中子单元的图片路径变量;并用于图片加载完毕后,调用图片管理模块的刷新功能对当前屏模板上的图片进行刷新;以及用于当进行图片切换时,根据切换方向释放相应的图片资源内存,同时,对模板进行切换,再根据模板id对切换后的模板上的图片进行刷新;
加载线程模块,用于对加载线程进行管理,将图片管理模块中每个单元所包含的子单元作为一个元素添加到加载线程模块中,通过加载线程进行图片加载。
有益效果:本发明将模板与图片加载分开管理,只将当前屏的模板进行图片绘制,从而提高了执行效率,由于模板与预加载的图片最多只有4屏,而其他屏都释放掉图片资源内存,所以降低了内存占用率,同时预加载前后各一屏的图片,所以保证了图片浏览的流畅度。
附图说明
图1为本发明一种图片加载与显示的方法较佳实施例的流程图。
图2为本发明的方法中模板的样式一布局图。
图3为本发明的方法中模板的样式二布局图。
图4为模板图片视图管理模块一单元的布局示意图。
图5为图片管理模块各单元之间的关系示意图。
图6为本发明的方法中加载图片与刷新图片过程的流程图。
图7为本发明的方法中图片进行绘制时的切换图。
图8为本发明一种图片加载与显示的系统较佳实施例的结构框图。
具体实施方式
本发明提供一种图片加载与显示的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明一种图片加载与显示的方法较佳实施例的流程图,如图所示,其包括:
S101建立图片列表;
其中的图片列表包括所有图片的list,包含了各图片的图片id以及图片路径。
S102、创建有效模板管理模块,将初始的模板添加到有效模板管理模块中以对模板进行布局;
其中的有效模板管理模块用来管理多个模板的样式和布局,并且负责添加及删除模板;在用户操作时,按模板的添加顺序切换模板,进行图片展示。不同的模板其具有不同的架构,如图2和图3所示,通过不同的模板来显示图片,可以变化图片的排版方式,即不同的模板其上的图片架构不同,当显示不同的模板上,即可显示不同的图片组合。
S103、创建模板图片视图管理模块,将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,并且为每一个模板上每一图片视图创建对应的子单元;
其中的模板图片视图管理模块,其所添加的每一个模板的数据为一个单元,并为模板上每一个图片视图创建一个子单元,用于对每一模板的各个图片视图进行管理,这样每个单元包含多个子单元,子单元的个数取决于模板上图片视图的个数。如图4所示,其为一个模板图片视图视图管理模块中单元1的实例,单元1对应一个模板,而子单元的个数则取决于该单元上所需布局的图片个数,每个子单元对象属性包括:模板id,图片视图id,以及图片视图的宽高。该模板图片视图管理模块还为每一个图片视图绘制默认图片。
S104、创建图片管理模块,在图片管理模块中创建3个分别对应于前一屏、后一屏以及当前屏模板的单元,每一单元包含有对应于相应屏模板上每一图片视图的子单元,同时获取图片列表中各图片的图片路径并赋予图片管理模块中子单元的图片路径变量;
图片管理模块中包含3个单元,分别用于前一屏及后一屏模板上图片的预存管理,及当前屏模板上图片的显示管理;因为图片最终显示在模板上,因此图片管理模块中的每一个单元都对应一个模板,该模板为用于通过不同图片布局方案来显示不同的图片的载体,每一个模板上的图片布局方案均不同。并为模板上每一个图片视图创建一个子单元,这样每个单元包含多个子单元,子单元的个数取决于对应模板上需要设置图片视图的个数。如图5所示,其为图片管理模块各单元之间的关系示意图,当前屏模板对应的单元为单元2,左右两侧分别为前一屏模板及后一屏模板对应的单元,每个子单元对象属性至少包括:模板id,图片视图id,图片视图的宽高,需加载的图片路径,以及下载后的图片资源。当模板不属于当前屏时,则图片视图id是空的,此时为预加载,即预先加载的图片,当该模板切换至当前屏时,则直接绘制该已预加载好的图片。图片管理模块提供的操作包括提示图片刷新,删除,以及内存释放等。
S105、创建加载线程模块,将图片管理模块中每个单元所包含的子单元作为一个元素添加到加载线程模块中,通过加载线程进行图片加载;
加载线程模块其用于启动一个加载线程来加载图片,其与UI显示的主线程属于异步操作,目的是为了减轻UI主线程的工作量,提高工作效率。
S106、图片加载完毕后,调用图片管理模块的刷新功能对当前屏模板上的图片进行刷新;
S107、当进行图片切换时,根据切换方向释放相应的图片资源内存,同时,对模板进行切换,再根据模板id对切换后的模板上的图片进行刷新。
下面对本发明进行具体说明。
在步骤S102中,模板布局方式分为两种:动态布局和静态布局。
其中的动态布局适用于模板较多的情况,以避免一次性加载浪费内存;在选择动态添加模板时,需保证模板数至少为4个。
初始布局时,先将3个模板添加到有效模板管理模块中,分别用于显示前一屏,当前屏,以及后一屏模板上的图片。
再将每一个模板的数据作为一个单元添加到模板图片视图管理模块,然后为每一个单元创建新的子单元,为每个子单元进行赋值。
创建图片管理模块,并为图片管理模块的每一个单元进行赋值。
静态布局适用于模板数量少于4个的场景,先将模板添加到有效模板管理模块中,再将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,模板图片视图管理模块中的单元是固定的,所以不进行删除和添加操作。创建图片管理模块,并为图片管理模块的每一个单元进行赋值。
在加载图片时,建立一个新的加载线程,用于图片下载,将图片管理模块中每个单元所包含的子单元作为一个元素,添加到加载线程模块中,用一个加载队列进行管理,通过加载线程进行图片下载。
当有元素添加到加载队列时,同时发生一个线程唤醒操作唤醒加载线程,以防止加载线程正处于挂起状态不能进行处理;当加载线程处于活动状态时,查询加载队列,循环进行图片加载;当加载队列为空时,加载线程中图片加载任务完成,线程挂起,处于等待状态;当加载队列不为空时,进行图片加载。
当加载路径所指向的图片无法解析时,则生成默认图片;正常解析时,解析成所需大小的图片。然后查询加载队列,继续加载,直到加载队列为空,加载线程挂起。
在图片下载完毕后,首先查看该图片对应的子单元是否存在,如果不存在,则将释放图片资源内存,不进行其它操作;如果子单元存在,则将图片资源赋值给对应的子单元。
然后调用图片管理模块的刷新功能,判断图片资源所属项是否指向了一个图片视图id,如果指向了图片视图id,则将图片绘制到相应的图片视图上展示给用户;如果未指向图片视图id(即图片视图id为空),说明是一个预加载图片,不进行图片刷新。
加载图片与刷新图片的过程如图6所示,包括步骤;
S201、创建加载线程;
S202、判断加载队列是否为空;当是时,进入步骤S203,否则转入到步骤S208;
S203、获取加载队列中的目录;
S204、判断目录是否被释放,当是时进入步骤S205,否则返回步骤S202;
S205、加载并解析图片;
S206、判断对应的图片视图是否存在,当是时进入步骤S207,当否时保存图片,即保存预加载的图片,然后返回步骤S202;
S207、刷新图片,然后返回步骤S202;
S208、挂起加载线程。
对于不同的模板数,其图片切换时的情况也不尽相同。
当模板数>3时:
切换图片时,首先调用图片管理模块的内存释放功能,根据切换方向释放相应的单元中子单元的图片资源内存。例如,向前切换时,则将第一元素进行释放;向后切换,则将最后一个元素进行释放。然后调用图片管理模块的删除功能将相应的子单元删除。
启动有效模板管理模块,添加一个新的模板,并启动模板图片视图管理模块,创建新的单元添加到模板图片视图管理模块,并为此单元赋值;创建新的单元添加到图片管理模块,并为此单元创建新的子单元,为每一个子单元进行初始化赋值。然后获取需要加载图片的图片路径依次为图片管理模块的每个子单元的图片路径项赋值。再将图片管理模块的每个子单元作为一个元素,添加到加载线程模块中进行加载操作。
调用有效模板管理模块切换模板;模板图片视图管理模块根据模板id,查找相应的单元,图片管理模块查询模板id相同的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元中的图片视图id,然后调用图片管理刷新功能进行图片刷新。
如果图片已经下载完成,则图片加载显示,如果图片未下载完成,等待加载线程模块下载图片。
当模板数=3时:
切换图片时,首先调用图片管理模块的内存释放功能,根据切换方向释放相应的单元中子单元的图片资源内存。例如,向前切换时,则将第一元素进行释放;向后切换,则将最后一个元素进行释放。然后获取需要加载图片的图片路径依次为图片管理模块的每个子单元的图片路径项赋值。然后将图片管理模块的每个子单元作为一个元素,添加到加载线程模块中进行加载操作。
调用有效模板管理模块切换模板;模板图片视图管理模块根据模板id,查找相应的单元,图片管理模块查询模板id相同的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元中的图片视图id,然后调用图片管理刷新功能进行图片刷新。
如果图片已经下载完成,则图片加载显示,如果图片未下载完成,等待加载线程模块下载图片。
模板只有2个时,操作与前述情况有所不同,因为图片管理模块里有3个模板对应图片信息数据,但是有效模板管理模块及模板图片视图管理模块中都只有2个模板对应图片信息数据,也就是说图片管理模块中有两个元素对应的模板id是重复的。
在切换图片时,首先调用图片管理模块的内存释放功能,根据切换方向释放相应的单元中子单元的图片资源内存。例如,向前切换时,则将第一元素进行释放;向后切换,则将最后一个元素进行释放。然后调用图片管理模块的删除功能将相应的子单元删除,最终显示的是第二个元素。
新创建一个单元,并为此单元创建新的子单元,将该单元添加到图片管理模块中。查询当前显示的模板id,将另一个模板id赋值给此单元。根据模板id查询模板图片视图管理模块中单元数据,对图片管理模块中的新创建的单元中包含的子单元进行赋值;然后获取需要加载图片的图片路径顺序为图片管理模块的每个子单元的图片路径项赋值。将图片管理模块的每个子单元作为一个元素,添加到加载线程模块中进行加载操作。
调用有效模板管理模块切换模板;模板图片视图管理模块根据模板id,查找相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元中的图片视图id。然后调用图片管理刷新功能进行图片刷新。
如果图片已经下载完成,则图片加载显示,如果图片未下载完成,等待加载线程模块下载图片。
当模板数为2个模板时,当前显示的一屏除外,往前一屏的模板,往后一屏的模板均是同一个模板。两个模板在布局时是一前一后重叠布局的。当进行了操作,比如查看前一屏幕的图片墙时,屏幕动画是往右移动。所以设置后一屏的模板做从左侧进入屏幕的动画,前一屏的模板做右侧退出屏幕的动画。屏幕大小是一定的,全屏显示模板在移动出屏幕时,会空出一定的空间,例如图7所示,从左至右切换图片,模板2会空出一定的空间,空出的空间用进入屏幕的模板1的一部分代替,其它看不见的部分是不进行绘制的。因此右侧退出的模板往出移动一点,左侧进入的模板往里移动一点,绘制如图7所示,这样就形成了一个切换过程。这种只有2个模板更体现了本发明将模板与图片分开管理的重要性:当用户切换之后,根据用户的切换方向在图片管理模块中获得预存的图片,然后绘制到另一个模板上去,若不这样管理,提前进行了绘制,则会出现无法调和模板数量的问题。
基于上述系统,本发明还提供一种图片加载与显示的系统,如图8所示,其包括:
图片列表创建模块100,用于建立图片列表;其中的图片列表包括所有图片的list,包含了各图片的图片id以及图片路径。
有效模板管理模块200,用于对模板进行管理,将初始的模板添加到有效模板管理模块中以对模板进行布局;其中的有效模板管理模块用来管理多个模板的样式和布局,并且负责添加及删除模板;在用户操作时,按模板的添加顺序切换模板,进行图片展示。不同的模板其具有不同的架构,如图2和图3所示,通过不同的模板来显示图片,可以变化图片的排版方式,即不同的模板其上的图片架构不同,当显示不同的模板上,即可显示不同的图片组合。
模板图片视图管理模块300,用于对模板上的图片视图进行管理,将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,并且为每一个模板上每一图片视图创建对应的子单元;其中的模板图片视图管理模块,其所添加的每一个模板的数据为一个单元,并为模板上每一个图片视图创建一个子单元,用于对每一模板的各个图片视图进行管理,这样每个单元包含多个子单元,子单元的个数取决于模板上图片视图的个数。每个子单元包括:模板id,图片视图id,以及图片视图的宽高。该模板图片视图管理模块还为每一个图片视图绘制默认图片。
图片管理模块400,用于对图片进行管理,在图片管理模块中创建3个分别对应于前一屏、后一屏以及当前屏模板的单元,每一单元包含有对应于相应屏模板上每一图片视图的子单元,同时获取图片列表中各图片的图片路径并赋予图片管理模块中子单元的图片路径变量;并用于图片加载完毕后,调用图片管理模块的刷新功能对当前屏模板上的图片进行刷新;以及用于当进行图片切换时,根据切换方向释放相应的图片资源内存,同时,对模板进行切换,再根据模板id对切换后的模板上的图片进行刷新。
图片管理模块中包含3个单元,分别用于前一屏及后一屏模板上图片的预存管理,及当前屏模板上图片的显示管理;因为图片最终显示在模板上,因此图片管理模块中的每一个单元都对应一个模板,该模板为用于通过不同图片布局方案来显示不同的图片的载体,每一个模板上的图片布局方案均不同,例如图2和图3所示。并为模板上每一个图片视图创建一个子单元,这样每个单元包含多个子单元,子单元的个数取决于对应模板上需要设置图片视图的个数。每个子单元对象属性至少包括:模板id,图片视图id,图片视图的宽高,需加载的图片路径,以及下载后的图片资源。当模板不属于当前屏时,则图片视图id是空的,此时为预加载,即预先加载的图片,当该模板切换至当前屏时,则直接绘制该已预加载好的图片。图片管理模块提供的操作包括提示图片刷新,删除,以及内存释放等。
加载线程模块500,用于对加载线程进行管理,将图片管理模块中每个单元所包含的子单元作为一个元素添加到加载线程模块500中,通过加载线程进行图片加载;加载线程模块500其用于启动一个加载线程来加载图片,其与UI显示的主线程属于异步操作,目的是为了减轻UI主线程的工作量,提高工作效率。
关于上述模块单元的技术细节在前面的方法中已有详述,故不再赘述。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种图片加载与显示的方法,其特征在于,包括步骤:
A、建立图片列表;
B、创建有效模板管理模块,将初始的模板添加到有效模板管理模块中以对模板进行布局;
C、创建模板图片视图管理模块,将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,并且为每一个模板上每一图片视图创建对应的子单元;
D、创建图片管理模块,在图片管理模块中创建3个分别对应于前一屏、后一屏以及当前屏模板的单元,每一单元包含有对应于相应屏模板上每一图片视图的子单元,同时获取图片列表中各图片的图片路径并赋予图片管理模块中子单元的图片路径变量;
E、创建加载线程模块,将图片管理模块中每个单元所包含的子单元作为一个元素添加到加载线程模块中,通过加载线程进行图片加载;
F、图片加载完毕后,调用图片管理模块的刷新功能对当前屏模板上的图片进行刷新;
G、当进行图片切换时,根据切换方向释放相应的图片资源内存,同时,对模板进行切换,再根据模板id对切换后的模板上的图片进行刷新。
2.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤B具体包括:
当模板数少于4个时,选择静态布局方式进行布局;当模板数为4个或4个以上时,选择动态布局方式进行布局;
在进行布局时,将模板id依序添加到有效模板管理模块中,分别用于显示前一屏、当前屏及后一屏模板上的图片。
3.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤E具体包括:
建立一个加载队列来对加载线程进行管理,当有元素添加到加载队列时,则同时发生一个线程唤醒操作来唤醒加载线程,当加载线程处于活动状态时,查询加载队列,循环进行图片加载。
4.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤F具体包括:
图片加载完毕后,首先查询该图片对应的子单元是否存在,若不存在,则释放图片资源内存,若存在,则将图片资源赋值给对应的子单元;
然后调用图片管理模块的刷新功能,判断图片资源所属项是否指向了一个图片视图id,当是时,则将图片绘制到相应的图片视图,否则不进行图片刷新。
5.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤G具体包括:
当模板数为4个或以上时,先调用图片管理模块的内存释放功能,根据切换方向释放相应的图片资源内存,并将图片管理模块中对应的子单元删除;
再添加一个新的模板,并创建新的单元到模板图片视图管理模块,同时为此新建的单元赋值;创建新的单元到图片管理模块,并为此单元创建新的子单元,为每一子单元进行赋值;然后获取需要加载图片的图片路径依次为图片管理模块的每个子单元的图片路径项赋值;再将图片管理模块的每个子单元作为一个元素添加到加载线程模块进行加载操作;
在切换模板后,模板图片视图管理模块根据模板id查找相应的单元,图片管理模块查询模板id相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元的图片视图id,然后调用图片管理模块刷新功能进行图片刷新。
6.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤G具体包括:
当模板数为3个时,先调用图片管理模块的内存释放功能,根据切换方向释放相应的图片资源内存;
然后获取需要加载图片的图片路径依次为图片管理模块的每个子单元的图片路径项赋值,然后将图片管理模块的每个子单元作为一个元素添加到加载线程模块中进行加载操作;
在切换模板后,模板图片视图管理模块根据模板id查找相应的单元,图片管理模块查询模板id相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元的图片视图id,然后调用图片管理模块刷新功能进行图片刷新。
7.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤G具体包括:
当模板数为2个时,先调用图片管理模块的内存释放功能,根据切换方向释放相应的图片资源内存,并将图片管理模块中对应的子单元删除;
新建一个单元,并为此单元创建新的子单元,将该单元添加到图片管理模块中,查询当前显示模板的模板id,将另一个模板id赋值给此新建的单元,根据模板id查询模板图片视图管理模块中各单元的数据,对图片管理模块中新建的单元中包含的子单元进行赋值,然后获取需加载图片的图片路径依次为每个子单元的图片路径项进行赋值,将图片管理模块中的每个子单元作为一个元素添加到加载线程模块中进行加载操作;
在切换模板后,模板图片视图管理模块根据模板id查找相应的单元,图片管理模块查询模板id相应的单元,将模板图片视图管理模块中子单元的图片视图id值赋予对应的图片管理模块子单元的图片视图id,然后调用图片管理模块刷新功能进行图片刷新。
8.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤F中在对图片进行绘制时,设置后一屏模板从左侧进入当前屏,前一屏模板从右侧进入当前屏,当前屏模板在移出当前屏时所空出的空间由进入到当前屏的模板的一部分替换,且进入到当前屏的模板的另一部分不进行绘制。
9.根据权利要求1所述的图片加载与显示的方法,其特征在于,所述步骤E中,加载线程与UI显示的主线程属于异步操作。
10.一种图片加载与显示的系统,其特征在于,包括:
图片列表创建模块,用于建立图片列表;
有效模板管理模块,用于对模板进行管理,将初始的模板添加到有效模板管理模块中以对模板进行布局;
模板图片视图管理模块,用于对模板上的图片视图进行管理,将每一个模板的数据作为一个单元添加到模板图片视图管理模块中,并且为每一个模板上每一图片视图创建对应的子单元;
图片管理模块,用于对图片进行管理,在图片管理模块中创建3个分别对应于前一屏、后一屏以及当前屏模板的单元,每一单元包含有对应于相应屏模板上每一图片视图的子单元,同时获取图片列表中各图片的图片路径并赋予图片管理模块中子单元的图片路径变量;并用于图片加载完毕后,调用图片管理模块的刷新功能对当前屏模板上的图片进行刷新;以及用于当进行图片切换时,根据切换方向释放相应的图片资源内存,同时,对模板进行切换,再根据模板id对切换后的模板上的图片进行刷新;
加载线程模块,用于对加载线程进行管理,将图片管理模块中每个单元所包含的子单元作为一个元素添加到加载线程模块中,通过加载线程进行图片加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410517523.3A CN105446763B (zh) | 2014-09-30 | 2014-09-30 | 一种图片加载与显示的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410517523.3A CN105446763B (zh) | 2014-09-30 | 2014-09-30 | 一种图片加载与显示的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105446763A true CN105446763A (zh) | 2016-03-30 |
CN105446763B CN105446763B (zh) | 2019-01-29 |
Family
ID=55557008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410517523.3A Active CN105446763B (zh) | 2014-09-30 | 2014-09-30 | 一种图片加载与显示的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105446763B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018113725A1 (zh) * | 2016-12-21 | 2018-06-28 | 北京奇虎科技有限公司 | 加载图片资源的方法、装置、程序及介质 |
CN110209432A (zh) * | 2018-02-28 | 2019-09-06 | 优酷网络技术(北京)有限公司 | 视图加载方法及装置 |
CN110806910A (zh) * | 2018-07-18 | 2020-02-18 | 深圳市鸿合创新信息技术有限责任公司 | 一种轮播图的优化方法及系统、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750148A (zh) * | 2012-06-08 | 2012-10-24 | Tcl集团股份有限公司 | 一种媒体信息显示方法及装置 |
CN103544253A (zh) * | 2013-10-15 | 2014-01-29 | Tcl集团股份有限公司 | 一种以瀑布流方式显示图片的实现方法及系统 |
CN103544207A (zh) * | 2013-08-19 | 2014-01-29 | Tcl集团股份有限公司 | 一种图片加载显示的方法与系统 |
-
2014
- 2014-09-30 CN CN201410517523.3A patent/CN105446763B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750148A (zh) * | 2012-06-08 | 2012-10-24 | Tcl集团股份有限公司 | 一种媒体信息显示方法及装置 |
CN103544207A (zh) * | 2013-08-19 | 2014-01-29 | Tcl集团股份有限公司 | 一种图片加载显示的方法与系统 |
CN103544253A (zh) * | 2013-10-15 | 2014-01-29 | Tcl集团股份有限公司 | 一种以瀑布流方式显示图片的实现方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018113725A1 (zh) * | 2016-12-21 | 2018-06-28 | 北京奇虎科技有限公司 | 加载图片资源的方法、装置、程序及介质 |
CN110209432A (zh) * | 2018-02-28 | 2019-09-06 | 优酷网络技术(北京)有限公司 | 视图加载方法及装置 |
CN110806910A (zh) * | 2018-07-18 | 2020-02-18 | 深圳市鸿合创新信息技术有限责任公司 | 一种轮播图的优化方法及系统、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105446763B (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI482080B (zh) | 配置行動通訊裝置之主畫面的行動通訊裝置、非暫態電腦可讀媒介與其適用方法 | |
KR102193489B1 (ko) | 엔트리들을 위한 옵트-인 영속성을 갖는 메시지 스레드를 유지하는 장치 및 방법 | |
CN102541538B (zh) | 一种基于移动终端的图片显示方法及装置 | |
EP3567476A1 (en) | Application data processing method and apparatus, and storage medium | |
US9952741B2 (en) | Mobile terminal application icon management method and mobile terminal | |
CN102047218B (zh) | 进程中的调度器实例 | |
CN100392604C (zh) | 一种实现程序资源共享的系统及方法 | |
CN101446973B (zh) | 用于管理信息系统的树视图节点加载显示方法 | |
US20080282142A1 (en) | Rendering a User Interface | |
US20130021361A1 (en) | Method and device for rendering user interface font | |
EP2381357A2 (en) | Management of device settings via a plurality of interfaces | |
CN105446763A (zh) | 一种图片加载与显示的方法及系统 | |
CN110908734A (zh) | 基于插件化的应用组合方法、装置、终端设备及存储介质 | |
CN106201155B (zh) | 用户界面显示方法和系统 | |
CN105469173A (zh) | 一种静态内存进行优化管理的方法 | |
CN104486389A (zh) | 一种窗口管理服务与app间的通信通道建立方法和系统 | |
CN108512782A (zh) | 访问控制列表分组调整方法、网络设备和系统 | |
CN104376096A (zh) | 基于缓冲区的异步更新的方法 | |
CN102375668B (zh) | 一种移动终端的窗口管理方法和装置 | |
CN106648602A (zh) | 页面加载方法 | |
CN106250242A (zh) | 基于操作系统的内存复用方法及装置 | |
CN107765943A (zh) | 一种在双屏智能终端上实现双app同时运行的方法 | |
CN111124618B (zh) | 资源部署方法、装置、存储介质及设备 | |
CN104461893A (zh) | 数据处理方法与数据处理装置 | |
US20080077845A1 (en) | Graphic user interface capable of collectively and selectively changing instances using master and method of collectively and selectively changing instances using master |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |