图片加载的方法及终端的制作方法

文档序号:6598338阅读:163来源:国知局
专利名称:图片加载的方法及终端的制作方法
技术领域
本发明涉及通信领域,尤其是涉及一种图片加载的方法及终端。
背景技术
低速处理器和低内存的图像终端设备通常体型比较小,且方便移动,但它的数据 处理能力比起普通的PC机来说,毕竟还是很有限的。因此,低速处理器和低内存的图像终 端设备的数据处理能力只能通过合理地利用其有限的资源的方式来提升它先天的不足。
现有的低速处理器和低内存图像终端设备(例如,手机)虽然可以通过多线程的 图片加载,达到用户的操作无需等待图片加载的进行的目的,但是,都存在一些缺陷,具体 地,有两种设计形式 (1)加载所有图片。用户在浏览图片时,没有图片加载的时延,有利于用户体验。 但是,这种加载方式对终端的内存消耗特别大,对具有低速处理器和低内存的图像终端设 备是不可取的。随着存储技术的不断发展,闪存(flash)容量会越来越大,用户存储的图片 数目也可能会非常庞大,这样必将会出现终端死机的情况。 (2)只加载可见部分图片。这种加载方式的好处是可以大大节省了终端的资源,属 于即用即加载的方式。但是,相应的缺点是其用户体验比较差,即,用户每次进行页面切换 时,都需等待图片加载的执行,当图片文件比较大或者图片解析过程比较慢时,用户的等待 时间也是相当可观的。 综上所述,现有的低速处理器和低内存的图像终端设备上的图片加载方式是很不 合理的,亟需进行优化。

发明内容
本发明的主要目的在于提供一种图片的加载方案,以至少解决上述问题。
为了实现上述目的,根据本发明的一个方面,提供了一种图片加载的方法。
根据本发明的图片加载的方法包括根据可用内存空间确定能够加载的图片的数 目;获取多个图片中从起始位置开始的数目的图片;以及为获取的图片分配资源,使用资 源预加载获取的图片。 优选地,获取多个图片中从起始位置开始的数目的图片包括在起始位置发生改 变时,根据改变后的起始位置重新获取数目的图片。 优选地,起始位置发生改变通过以下方式至少之一 屏幕的滚动条通过快速按键 或触摸的方式拖动、当前屏幕发生变换。 优选地,该方法还包括在起始位置发生改变之后,确定在屏幕中按縮略图形式应 该显示的新图片;如果应该显示的新图片属于预加载的图片,则直接从预加载的图片显示 应该显示的新图片。 优选地,使用资源预加载获取的图片之后,包括回收在重新获取数目的图片之外 的图片的分配资源。
优选地,数目大于当前屏幕显示的图片的数量。 优选地,起始位置通过图片目录中图片的列表项和/或屏幕的滚动条的位置来确 定。 为了实现上述目的,根据本发明的另一方面,还提供了一种终端。 根据本发明的终端,包括确定模块,用于根据可用内存空间确定能够加载的图片
的数目;获取模块,用于获取多个图片中从起始位置开始的数目的图片;以及加载模块,用
于为获取的图片分配资源,使用资源预加载获取的图片。 优选地,获取模块包括更新单元,用于在起始位置发生改变时,根据改变后的起 始位置重新获取数目的图片。 优选地,更新单元还用于屏幕的滚动条通过快速按键或触摸的方式拖动、或者当 前屏幕发生变换时起始位置发生改变。 通过本发明,采用多线程的图片加载方式,利用用户的操作时间进行图片的预解 析,解决了现有的低速处理器和低内存的图像终端设备加载所有图片内存消耗特别大和加 载可见部分图片解析过程慢的问题,保证了用户在访问图片时图片数据资源已经就位,从 而实现了用户在切换图片时的"零"时间等待及在预览图片时的不间断性,提升了用户体 验,合理利用了系统资源。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发
明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 图1是根据本发明实施例的终端的结构框图; 图2是根据本发明实施例的终端的优选结构框图; 图3是根据本发明实施例的图片加载的方法的流程图; 图4是根据本发明实施例的进入图片目录的流程图; 图5是根据本发明实施例的切换图片页面的流程图。
具体实施例方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。 在实施例中,提供了一种终端。图1是根据本发明实施例的终端的结构框图,如 图1所示,终端包括确定模块12、获取模块14和加载模块16,下面对此终端进行详细的说 明。 终端确定模块12,该模块用于根据可用内存空间确定能够加载的图片的数目;获 取模块14连接至确定模块12,用于获取多个图片中从起始位置开始的该数目的图片;以及 加载模块16连接至获取模块14,用于为获取的图片分配资源,使用该资源预加载获取的图 片。 通过上述终端,可以利用用户的操作时间进行图片的预解析,解决了加载所有图 片内存消耗特别大和加载可见部分图片解析过程慢的问题。 图2是根据本发明实施例的终端的优选结构框图,如图2所示,获取模块14包括更新单元142,用于在起始位置发生改变时,根据改变后的起始位置重新获取该数目的图 片。 优选地,更新单元142还用于屏幕的滚动条通过快速按键或触摸的方式拖动、或 者当前屏幕发生变换时起始位置发生改变。也就是说,屏幕的滚动条通过快速按键或触摸 的方式拖动,或者其他可以使当前屏幕发生变换的行为(例如,采用传感器的重力感应方 式)都可以触发起始位置的改变。 在实施例中,对应于上述的终端,提供了一种图片加载的方法,图3是根据本发明
实施例的图片加载的方法的流程图,如图3所示,该方法包括如下步骤 步骤S302,根据可用内存空间确定能够加载的图片的数目; 步骤S304,获取多个图片中从起始位置开始的上述数目的图片;以及 步骤S306,为获取的图片分配资源,使用该资源预加载获取的图片。 通过上述方法,保证了用户在访问图片时图片数据资源已经就位,实现了用户在
切换图片时的"零"时间等待及在预览图片时的不间断性。 优选地,步骤S302中的能够加载的图片数目可以大于当前屏幕显示的图片的数 量。该方法使得在屏幕滚动时,新出现在屏幕的图片无需等待重新加载,可以直接看到显示 的图片,提高了用户体验。 优选地,在步骤S304中,在起始位置发生改变时,根据改变后的起始位置重新获
取上述数目的图片,例如,屏幕的滚动条通过快速按键或触摸的方式拖动,或者其他可以使
当前屏幕发生变换的行为(例如,采用传感器的重力感应方式)都可以触发起始位置发生
改变;另外,起始位置可以通过图片目录中图片的列表项和/或屏幕的滚动条的位置(或
者其他可以唯一地表征列表项位置的参数)来确定。该方法明确了重新加载图片数目的时
机,使得上述数目可以根据内存的使用情况动态更改,增加了系统的灵活性。 优选地,在起始位置发生改变之后,确定在屏幕中按縮略图形式应该显示的新图
片;如果应该显示的新图片属于预加载的图片,则直接从预加载的图片显示应该显示的新
图片。该方法使得在图片在以縮略图形式显示时,通过快速按键或触摸的方式拖动屏幕滚
动条时,用户可以无需等待地直接看到显示图片,增强了用户体验。 优选地,可以在步骤S306之后回收在重新获取上述数目的图片之外的图片的分 配资源。该方法提高了内存的利用率和系统性能。 上述步骤S302至步骤S306可以采用多线程预加载和内存管理的方式来完成,主 要包括两个线程线程l,负责响应用户的操作,在整个操作过程中充当控制角色;线程2, 负责图片的加载处理,在整个过程中是执行单元。两者相辅相成,通过同步机制,共同配合 完成图片的预处理过程和终端的内存的管理。 具体地,线程1对用户的操作指令进行解析,根据符合图片加载上下限条件的每 一个图片列表项的属性,分别为它们分配一个任务,并通过同步机制将这一任务添加到线 程2的队列中,交给线程2来处理。与此同时,线程1对不符合加载上下限条件、但又已经 分配了系统资源的图片列表项的资源进行回收。然后,线程1继续监控用户动作和线程2 返回的处理结果,并对任务结果进行处理。其中,线程2的任务很简单,是通过同步机制来 处理自己队列中的一个个图片解析请求,并在图片解析处理完毕后,通知线程1图片解析 处理的结果信息。需要说明的是,上述图片加载上下限是指软件中约定的、需要图片解析函
5数处理的、在图片目录列表中的上限至下限的范围,即,图片目录列表中需要进行图片解析 处理的图片列表项。 下面对本发明技术方案的具体实施例做进一步的详细描述。
优选实例一 图4是根据本发明实施例的进入图片目录的流程图,如图4所示,当用户首次进入 图片文件目录时,根据当前内存的大小以及使用情况确定加载的上下限,线程l(用户操作 线程)开始将符合加载上下限条件的所有图片列表项添加到线程2(图片解析线程)的任 务队列中;线程2为线程1交给它的任务队列中的所有图片列表项分配资源,并进行解析处 理(由于加载图片需要片刻的时间,此刻可以在屏幕上添加一个漂亮的等待图片以增加用 户体验),同时,将不在此加载上下限中的已分配资源进行回收,等待解析任务完毕,通知线 程1释放等待图片,显示加载完毕的图片。与此同时,设置一个监视器,定期对内存使用情 况进行监测,一旦内存变化达到本发明实施例设计方案的监测算法中的门限值时,系统更 新上述加载上下限值,实现自适应的图片预加载。 如图4所示,根据本发明实施例的初始进入图片目录的系统的处理,是基于一个 GUI图形操作系统来实现,该流程主要包括以下处理(步骤S401-步骤S409):
步骤S401,进入图片目录。
步骤S402,加载等待图片。 步骤S403,创建列表窗口并进行相关参数初始化工作。文件管理模块创建图片明 细ComplexList列表窗口 ,然后,对ComplexList列表控件和ScrollBar滚动条控件的位置 参数进行初始化。ComplexList控件为它的每个列表项分配一段附加数据,保存图片文件的 相关信息,其中,最重要的信息就是图片文件在flash中的路径。ScrollBar滚动条控件也 将其位置参数初始值置为O,表示当前页面是整个软件ComplexList列表的第1屏。
步骤S404,遍历所有图片列表项,动态确定图片加载数目。首先,计算内存的总容 量和当前内存的使用情况,根据这两个因素动态确定图片加载数目门限值(能够加载的图 片的数目),即,根据内存的总容量和内存的消耗情况动态设置图片加载数目门限值。需要 说明的是,虽然图片加载数目是动态设置的,但是为了保证用户体验,本发明实施例还设定 了一个最低预加载数目,其中,这个最低预加载值一定是大于当前屏幕显示个数的,当内存 使用达到极限时,提示用户"内存不足"。 步骤S405,确定图片加载上下限,判断当前项是否符合加载上下限条件。根据 ScrollBar滚动条控件的位置参数来确定ComplexList列表控件的列表项图片加载上下 限,并判断当前项是否符合加载上下限条件。由于刚进入目录,聚焦项肯定是第l项。因 此,假设此时动态设置的图片加载数目为9,那么需要加载ComplexList列表控件中索引值 为1、2、3、4、5、6以及的最后3个的列表项,其中,这里的加载图片的数目为9,S卩,有9个图 片列表项需要加载。 步骤S406,将符合加载上下限的图片解析任务加入线程2队列中。在确定了图片 加载上下限之后,便可以开始将符合加载上下限的图片的相关信息(例如,图片在文件系 统中的路径)附加到线程2的队列中,等待线程2的处理和返回。为了提升用户感官体验, 此时可以加载系统中预置的漂亮的等待位图(可以提升加载速度,使得加载的位图无需再 做解析便可以直接使用),并且可以设定一个指示变量值用来指示当前的图片加载数目,等
6待图片解析线程的处理结果,一旦解析完毕一个图片,指示变量就减l,直到该变量值为0, 这时候解除等待图片,显示当前目录第1屏,其中,在等待图片期间,如果用户点击上下键, 系统将不会对此做出响应。 步骤S407,线程1对不符合加载上下限条件、但又已经分配了系统资源的图片列 表项的资源进行回收。 步骤S40S,线程2通过同步机制来处理自己队列中的一个个图片解析请求,并在 图片解析处理完毕后,通知线程1图片解析处理的结果信息。 步骤S409,线程1监控用户动作和线程2返回的处理结果,并对任务结果进行处理。 优选实例二 图5是根据本发明实施例的切换图片页面的流程图,如图5所示,在图片目录下, 用户点击上下键切换页面,线程1将符合加载上下限条件的列表项通过线程同步机制添加 到线程2的队列中,同时,对不符合加载上下线条件但已经分配系统资源的图片列表项的 系统资源进行释放;线程2对来自线程1的图片解析请求队列中的任务进行处理,并将处理 结果及时反馈给线程1 ;线程1实时监控线程2的处理结果,在收到线程2的处理结果后, 将分配好系统资源的图片指定到绘制句柄上,并在用户切换到图片所在页面时,负责将图 片绘制出来。 需要说明的是,本发明的实施例的图片列表中可以存在縮略图,且快速按键、拖动 滚动条或者当前屏幕发生变换(例如,采用传感器的重力感应)时存在某些项临时进行加 载。通过内存检测工具,检测进入图片列表前后剩余内存空间的差值,且与图片列表中所有 图片的占用的内存空间值作比对,可以得出剩余内存空间的差值远远大于所有图片占用的 内存空间值。 如图5所示,根据本发明实施例的切换图片页面的处理,该流程主要包括以下处 理(步骤S501-步骤S508): 步骤S501 ,切换页面。由于该方法支持触摸屏,所以,用户可以通过按上下键或触 摸滚动条的方式切换图片页面。 步骤S502,系统参数更新。对ComplexList列表控件和ScrollBar滚动条控件的 位置参数进行更新。 步骤S503,遍历所有图片列表项,动态确定图片加载数目。具体步骤同优选实施例 一的步骤S404。 步骤S504,确定图片加载上下限,判断当前项是否符合加载上下限条件。具体步骤
同优选实施例一的步骤S405。用户按键或者触摸滚动条触发图片加载上下限更新。在用户
按上下键和触摸滚动条的上下键以及拖动滚动条时均会触发当前页面的改变,因此,可以
自定义PageChange事件,当用户按上下键和触摸滚动条等操作时触发该事件,并在消息映
射函数中根据ComplexList列表控件的位置参数来确定新的图片加载上下限。 步骤S505,将新的符合加载上下限的图片解析任务加入线程2队列中,同时将不
在加载上下限但占有系统资源的图片进行释放。 步骤S506,线程1对不符合加载上下限条件、但又 经分配了系统资源的图片列 表项的资源进行回收。
在图片目录下,用户触摸滚动条切换页面,这时线程1开始将符合加载上下限条 件的列表项通过线程同步机制添加到线程2的队列中,线程1对不符合加载上下线条件但 已经分配系统资源的列表项释放系统资源。但是,由于触摸滚动条切换页面速度很快,远远 超过图片解析速度,这样每当滚动条有一次最小移动(是指的是在拖动滚动条时触发滚动 条事件移动最小距离),都会改变图片加载上下限。因此,会存在很多符合加载条件的列表 项,线程1会将它们添加到线程2的解析队列中。但是,由于切换速度很快,可能刚刚还符 合加载条件并已经添加到线程2队列中的任务现在已经不满足加载上下限条件了 ,所以, 如果让线程2对这些任务进行处理,只会白白浪费了宝贵的处理器和内存资源,无法让需 要解析的任务得到及时地处理,而且可能导致内存泄露。因此,为了更好地支持用户体验, 线程1负责将已经加入到线程2队列中还未处理但当前又不满足加载条件的项任务取消, 这样就能够保证线程2处理的任务总是有效的。 步骤S 507,线程2通过同步机制来处理自己队列中的一个个图片解析请求,并在 图片解析处理完毕后,通知线程1图片解析处理的结果信息。 步骤S508,线程1监控用户动作和线程2返回的处理结果,并对任务结果进行处 理。例如,加载图片。
优选实例三 在图片加载期间,退出页面时系统的处理,该流程主要包括以下处理
步骤1,动态确定图片加载数目,具体步骤同优选实施例一的步骤S404。
步骤2,用户退出当前页面触发图片加载上下限更新。 步骤3,线程1将符合加载上下限的列表项相关信息添加到线程2的队列中。
步骤4,在所有图片解析任务还未执行完成前退出当前页面,此时,会触发 SelectedChange事件,在SelectedChange事件的消息映射函数中主动触发PageChange事 件,并在消息映射函数中根据ComplexList列表控件的位置参数来确定新的图片加载上下 限。 步骤3,通知线程2取消不在图片加载上下限中的解析任务。如果存在某些 ComplexList列表项没有占用系统资源、但是在线程2的处理队列中,那么需要向线程2发 送一个信号,用以说明该项已经被取消解析,命令图片解析线程在遇到该项时跳过处理并 释放系统资源。 需要说明的是,在优选实施例二中快速按上下键和拖动滚动条显示时也会导致图 片加载上下限的改变,也会出现处于线程2队列中但是已经不在图片加载上下限中的图片 解析任务,此时,也按照该步骤3的情况进行处理。 综上所述,鉴于现有的低速处理器和低内存图像终端设备的两种设计形式,本发 明提出了一种折中的方案,采用多线程的图片加载方式,利用用户的操作时间进行图片的 预解析,保证了用户在访问图片时图片数据资源已经就位,提高了系统的性能。从用户体验 设计的理念层面增加了用户对产品的认知度,为用户创造良好的人机界面。同时,本发明的 技术方案在多线程调度和内存管理上面也有不逊于第一种加载方式的高效和不逊于第二 种加载方式的灵活。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种图片加载的方法,其特征在于,包括根据可用内存空间确定能够加载的图片的数目;获取多个图片中从起始位置开始的所述数目的图片;以及为所述获取的图片分配资源,使用所述资源预加载所述获取的图片。
2. 根据权利要求1所述的图片加载的方法,其特征在于,获取所述多个图片中从起始 位置开始的所述数目的图片包括在所述起始位置发生改变时,根据改变后的所述起始位 置重新获取所述数目的图片。
3. 根据权利要求2所述的图片加载的方法,其特征在于,所述起始位置发生改变通过 以下方式至少之一 屏幕的滚动条通过快速按键或触摸的方式拖动、当前屏幕发生变换。
4. 根据权利要求3所述的图片加载的方法,其特征在于,还包括 在所述起始位置发生改变之后,确定在屏幕中按縮略图形式应该显示的新图片; 如果所述应该显示的新图片属于所述预加载的图片,则直接从所述预加载的图片显示所述应该显示的新图片。
5. 根据权利要求2所述的图片加载的方法,其特征在于,使用所述资源预加载所述获 取的图片之后,包括回收在重新获取所述数目的图片之外的图片的分配资源。
6. 根据权利要求1所述的图片加载的方法,其特征在于,所述数目大于当前屏幕显示 的图片的数量。
7. 根据权利要求l所述的图片加载的方法,其特征在于,所述起始位置通过图片目录 中图片的列表项和/或屏幕的滚动条的位置来确定。
8. —种终端,其特征在于,包括确定模块,用于根据可用内存空间确定能够加载的图片的数目; 获取模块,用于获取多个图片中从起始位置开始的所述数目的图片;以及 加载模块,用于为所述获取的图片分配资源,使用所述资源预加载所述获取的图片。
9. 根据权利要求8所述的终端,其特征在于,所述获取模块包括更新单元,用于在所 述起始位置发生改变时,根据改变后的所述起始位置重新获取所述数目的图片。
10. 根据权利要求9所述的终端,其特征在于,所述更新单元还用于屏幕的滚动条通过 快速按键或触摸的方式拖动、或者当前屏幕发生变换时所述起始位置发生改变。
全文摘要
本发明公开了一种图片加载的方法及终端,该方法包括根据可用内存空间确定能够加载的图片的数目;获取多个图片中从起始位置开始的数目的图片;以及为获取的图片分配资源,使用资源预加载获取的图片。通过本发明提升了用户体验,合理利用了系统资源。
文档编号G06F3/048GK101794567SQ20101011105
公开日2010年8月4日 申请日期2010年2月10日 优先权日2010年2月10日
发明者张飞 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1