书签 分享 收藏 举报 版权申诉 / 15

一种图片加载方法和装置.pdf

  • 上传人:a****
  • 文档编号:4607910
  • 上传时间:2018-10-22
  • 格式:PDF
  • 页数:15
  • 大小:884.01KB
  • 摘要
    申请专利号:

    CN201310591360.9

    申请日:

    2013.11.20

    公开号:

    CN104657380A

    公开日:

    2015.05.27

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20131120|||公开

    IPC分类号:

    G06F17/30; G06F3/0488(2013.01)I

    主分类号:

    G06F17/30

    申请人:

    青岛海信移动通信技术股份有限公司

    发明人:

    王磊

    地址:

    266071山东省青岛市市南区江西路11号

    优先权:

    专利代理机构:

    北京同达信恒知识产权代理有限公司11291

    代理人:

    刘醒晗

    PDF完整版下载: PDF下载
    内容摘要

    本发明实施例公开了一种图片加载方法和装置,涉及通信领域,用于解决现有技术中由于进程过多导致的加载图片时屏幕卡顿的现象,以及由于OOM异常产生的FC异常。本发明实施例中,当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片,解决了加载图片时屏幕卡顿的现象;确定待加载图片是否存储在缓存区中,若待加载图片已存储在缓存区中,则调用线程池中的线程加载已存储在缓存区中的待加载图片,若待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载待加载图片进行加载,解决了由于OOM产生的FC异常。

    权利要求书

    1.  一种图片加载方法,其特征在于,该方法包括:
    当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片;
    确定所述待加载图片是否存储在缓存区中,若所述待加载图片已存储在所述缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的所述待加载图片,若所述待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载所述待加载图片进行加载。

    2.
      如权利要求1所述的方法,其特征在于,所述缓存区具体包括内存缓存和文件缓存;所述若所述待加载图片已存储在缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的图片,具体包括:
    若从所述内存缓存中查找到所述待加载图片,则调用线程池中的线程加载查找到的所述待加载图片;否则,从文件缓存中查找所述待加载图片;
    若从所述文件缓存中查找到所述待加载图片,则调用线程池中的线程加载所述待加载图片,并将所述存储在文件缓存中的所述待加载图片存储到所述内存缓存中。

    3.
      如权利要求1所述的方法,其特征在于,所述缓存区具体包括内存缓存和文件缓存;若所述待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载所述未存储在缓存区的图片,具体包括:
    若从所述内存缓存中未查找到所述待加载图片,且从所述文件缓存中也未查找到所述待加载图片,则调用线程池中的线程从网络下载所述待加载图片,并将所述下载后的图片存储到所述内存缓存和所述文件缓存中。

    4.
      如权利要求1所述的方法,其特征在于,所述线程池中的线程的数量为N或者N+1,所述N为处理器数量。

    5.
      如权利要求1所述的方法,其特征在于,所述当触摸屏上的滑动操作停止时,确定当前屏幕中的全部的图片为待加载图片,具体包括:
    识别所述触摸屏上的滑动操作,若所述滑动操作未停止,则不加载当前屏幕中的全部图片;
    若所述滑动操作停止,则将当前屏幕中的图片作为待加载图片。

    6.
      一种图片加载装置,其特征在于,包括:
    加载确定单元,用于当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片;
    图片查询单元,用于确定所述待加载图片是否存储在缓存区中;
    图片加载单元,用于若所述图片查询单元确定所述待加载图片已存储在所述缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的所述待加载图片,若所述图片查询单元确定所述待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载所述待加载图片进行加载。

    7.
      如权利要求6所述的装置,其特征在于,所述缓存区具体包括内存缓存和文件缓存;
    所述图片加载单元具体用于,若所述图片查询单元从所述内存缓存中查找到所述待加载图片,则调用线程池中的线程加载查找到的所述待加载图片;否则,从文件缓存中查找所述待加载图片;若所述图片查询单元从所述文件缓存中查找到所述待加载图片,则调用线程池中的线程加载所述待加载图片,并将所述存储在文件缓存中的所述待加载图片存储到所述内存缓存中。

    8.
      如权利要求6所述的装置,其特征在于,所述缓存区具体包括内存缓存和文件缓存;
    所述图片加载单元具体用于,若所述图片加载单元从所述内存缓存中未查找到所述待加载图片,且从所述文件缓存中也未查找到所述待加载图片,则调用线程池中的线程从网络下载所述待加载图片,并将所述下载后的图片存储到所述内存缓存和所述文件缓存中。

    9.
      如权利要求6所述的装置,其特征在于,所述线程池中的线程的数量为N或者N+1,所述N为处理器数量。

    10.
      如权利要求6所述的装置,其特征在于,所述加载确定单元具体用于,
    识别所述触摸屏上的滑动操作,若所述滑动操作未停止,则不加载当前屏幕中的全部图片;
    若所述滑动操作停止,则将当前屏幕中的图片作为待加载图片。

    说明书

    一种图片加载方法和装置
    技术领域
    本发明涉及通信领域,尤其涉及一种图片加载方法和装置。
    背景技术
    基于安卓Android系统进行网络相关应用的设计和开发时,开发人员需要针对终端如何下载网络上存储的照片并显示已经下载的照片进行开发,为了达到这个目的,在针对手机终端的应用的设计时,开发人员通常使用列表视图ListView控件或网络视图GridView控件,在一个界面中显示大量图片。由于不同尺寸的手机终端的屏幕能够显示出来的图片的数量是不同的,如果需要显示的图片的数量较大的话,在ListView控件或GridView控件中加载大量图片时,容易出现界面卡顿的现象。
    通常意义中的手机内存包括系统物理内存和进程可使用的内存。当系统物理内存不足时,操作系统会释放其他进程并释放内存。一般情况下,内存使用较大的进程或者占用物理内存较高的进程会被操作系统优先释放。进程可使用的内存主要由虚拟机管理。Android系统的应用程序是运行在佳沃java虚拟机上的,其内存分配在托管堆上,并通过虚拟机来管理。一般来说,虚拟机会合理的管理内存,但是当应用使用内存比较高时,或者内存一直被引用时,虚拟机无法完成内存回收,因此会产生内存不足的情况。例如,打开位图文件Bitmap时,由于位图的数据是分配在标示符native堆上面的,当同时打开或连续打开多个Bitmap时,native堆就会不够用,产生内存不足(Out Of Menory?memory,OOM)异常。在Android系统的应用中,当用户界面UI线程5秒内没有响应时,系统就是抛出无响应异常,若需要从网络侧下载大量的资源,容易出现OOM异常。
    现有技术中,当使用ListView或GirdView加载图片时,都会在创建新的线程用来加载图片。在使用现有技术中的方案加载图片时,当用户快速向下滑动屏幕时,对于屏幕中的每一个图片,ListView都会新建一个线程用于加载图片,用户滑过的图片越多,ListView就会新建越多的进程,当同一段时间内存在的进程太多,会导致加载图片时屏幕卡顿,以及由于OOM异常产生的强制关闭(Force Close,FC)异常。
    发明内容
    本发明实施例提供了一种图片加载方法和装置,用于解决现有技术中加载图片时的屏幕卡顿现象,以及由于OOM异常造成的强制关闭异常。
    一种图片加载方法,包括:
    当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片;
    确定所述待加载图片是否存储在缓存区中,若所述待加载图片已存储在所述缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的所述待加载图片,若所述待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载所述待加载图片进行加载。
    从上述方案可以看出,只有当触摸屏上的滑动操作停止时,才将当前屏幕中的图片作为待加载图片,解决了现有技术中由于需要加载的图片过多而造成的屏幕卡顿现象;确定待加载图片是否存储在缓存区中,若待加载图片已存储在缓存区中,则调用线程池中的线程加载已存储在缓存区中的待加载图片,若待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载待加载图片进行加载;解决了现有技术中由于OOM异常产生的FC异常,从而大大提高了图片加载的速率,增强了用户体验。
    较佳的,所述缓存区具体包括内存缓存和文件缓存;若从所述内存缓存中查找到所述待加载图片,则调用线程池中的线程加载查找到的所述待加载图 片;否则,从文件缓存中查找所述待加载图片;若从所述文件缓存中查找到所述待加载图片,则调用线程池中的线程加载所述待加载图片,并将所述存储在文件缓存中的所述待加载图片存储到所述内存缓存中。这样,本发明实施例优先在内存缓存中查找待加载图片,并从文件缓存中查找待加载图片,利用二级缓存机制,提高了图片加载的速度。
    较佳的,所述缓存区具体包括内存缓存和文件缓存;若从所述内存缓存中未查找到所述待加载图片,且从所述文件缓存中也未查找到所述待加载图片,则调用线程池中的线程从网络下载所述待加载图片,这样,如果未在本地缓存区查找到待加载图片,才从网络下载图片,从而减少了从网络下载图片的数量,降低了网络流量,同时,将所述下载后的图片存储到所述内存缓存和所述文件缓存中。这样,避免了再次加载同一图片时需要重新从网络下载的问题。
    较佳的,所述线程池中的线程的数量为N或者N+1,所述N为处理器数量。这样,能够保证处理器资源能够充分利用,并且不会由于线程数量过多降低性能。
    较佳的,识别所述触摸屏上的滑动操作,若所述滑动操作未停止,则不加载当前屏幕中的全部图片;若所述滑动操作停止,则将当前屏幕中的图片作为待加载图片。这样,只有当触摸屏上的滑动操作停止时,才将当前屏幕中的图片作为待加载图片,解决了现有技术中由于需要加载的图片过多而造成的屏幕卡顿现象。
    一种图片加载装置,包括:
    加载确定单元,用于当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片;
    图片查询单元,用于确定所述待加载图片是否存储在缓存区中;
    图片加载单元,用于若所述图片查询单元确定所述待加载图片已存储在所述缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的所述待加载图片,若所述图片查询单元确定所述待加载图片未存储在缓存区中,则调用线 程池中的线程从网络下载所述待加载图片进行加载。
    从上述方案可以看出,只有当触摸屏上的滑动操作停止时,才将当前屏幕中的图片作为待加载图片,解决了现有技术中由于需要加载的图片过多而造成的屏幕卡顿现象;确定待加载图片是否存储在缓存区中,若待加载图片已存储在缓存区中,则调用线程池中的线程加载已存储在缓存区中的待加载图片,若待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载待加载图片进行加载;解决了现有技术中由于OOM异常产生的FC异常,从而大大提高了图片加载的速率,增强了用户体验。
    较佳的,所述缓存区具体包括内存缓存和文件缓存;所述图片加载单元具体用于,若所述图片查询单元从所述内存缓存中查找到所述待加载图片,则调用线程池中的线程加载查找到的所述待加载图片;否则,从文件缓存中查找所述待加载图片;若所述图片查询单元从所述文件缓存中查找到所述待加载图片,则调用线程池中的线程加载所述待加载图片,并将所述存储在文件缓存中的所述待加载图片存储到所述内存缓存中。这样,本发明实施例优先在内存缓存中查找待加载图片,并从文件缓存中查找待加载图片,利用二级缓存机制,提高了图片加载的速度。
    较佳的,所述缓存区具体包括内存缓存和文件缓存;所述图片加载单元具体用于,若所述图片加载单元从所述内存缓存中未查找到所述待加载图片,且从所述文件缓存中也未查找到所述待加载图片,则调用线程池中的线程从网络下载所述待加载图片,这样,如果未在本地缓存区查找到待加载图片,才从网络下载图片,从而减少了从网络下载图片的数量,降低了网络流量,同时,将所述下载后的图片存储到所述内存缓存和所述文件缓存中。这样,避免了再次加载同一图片时需要重新从网络下载的问题。
    较佳的,所述线程池中的线程的数量为N或者N+1,所述N为处理器数量。这样,能够保证处理器资源能够充分利用,并且不会由于线程数量过多降低性能。
    较佳的,所述加载确定单元具体用于,识别所述触摸屏上的滑动操作,若所述滑动操作未停止,则不加载当前屏幕中的全部图片;若所述滑动操作停止,则将当前屏幕中的图片作为待加载图片。这样,只有当触摸屏上的滑动操作停止时,才将当前屏幕中的图片作为待加载图片,解决了现有技术中由于需要加载的图片过多而造成的屏幕卡顿现象。
    附图说明
    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
    图1为本发明实施例提供的一种图片加载方法的流程示意图;
    图2为本发明实施例提供的选择只加载当前屏幕的流程示意图;
    图3为本发明实施例提供的利用线程池中的多个线程优先从本地缓存区快速加载图片的流程示意图;
    图4为本发明实施例提供的图片加载装置的结构示意图;
    图5为本发明实施例提供的一种实体装置的结构示意图。
    具体实施方式
    为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
    本发明实施例可以适用于具备触摸屏的终端,尤其适用于安装有Android系统、并具备触摸屏的、CPU数量为四个(四核)的智能终端。
    本发明实施例中,一方面,只有当触摸屏上的滑动操作停止时,才将当前 屏幕中的图片作为待加载图片,解决了现有技术中由于需要加载的图片过多而造成的屏幕卡顿现象;另一方面,在图片加载过程中,首先确定待加载图片是否存储在缓存区中,若待加载图片已存储在缓存区中,则调用线程池中的线程加载已存储在缓存区中的待加载图片,若待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载待加载图片进行加载;从而大大提高了图片加载的速率,增强了用户体验。
    下面结合附图对本发明实施例进行具体说明。
    本发明实施例提供的一种异步加载图片的方法包括:选择只加载当前屏幕上的图片的过程,利用线程池中的多个线程优先从本地缓存区快速加载图片的过程。
    图1示出了本发明实施例提供的一种图片加载方法的流程示意图。本发明实施例中的线程池中的线程的数量可以按照Android系统的规定进行分配,也可以预先将线程池中的线程的数量设置为N或者N+1,N为智能终端的处理器CPU数量,N大于1,且N为整数。需要说明的是,当智能终端的CPU数量为一个时,线程池中的线程的数量可以设置为N+1,即2个线程。当智能终端CPU数量为四个(四核)时,线程池中的线程的数量可以设置为N+1,即5个线程。
    本发明实施例中的缓存区可以为内存缓存和文件缓存。还可以把内存缓存分为二级缓存,即:一级内存缓存和二级内存缓存,内存缓存可以为终端的内存存储器,使用终端的内存存储器作为内存缓存的优点是数据读写速度快;文件缓存可以为终端的SD存储器或者硬盘等存储设备。文件缓存的清理机制可以通过如下方式实现:在进行文件存储时,记录文件名称和当前时间,在接收某文件时,更新该文件对应的时间,在删除文件缓存中的文件时,按照各文件对应的时间,删除设定比例的距离上次使用时间最长的文件。
    Android操作系统上的内存清理过程可以通过以下步骤实现:Android操作系统上的应用是运行在java虚拟机上面的,内存分配在托管堆上,通过GC来 管理。虽然一般来说,GC会合理的管理内存,开发者不用太关心内存释放的时机。一级缓存采用SoftReference(软引用)对象的方式存储,当一个对象只有软引用时,若存储空间足够,则不会被系统回收,再次加载时可以使用该对象;若存储空间不足,则系统会回收该对象。
    Android操作系统上的线程池的释放过程可以通过以下步骤实现:Android中可以根据需要创建新线程的线程池,对应执行很短期异步任务而言,线程池可以提高程序的性能,调用execute执行线程添加到线程池功能。
    Android操作系统上的线程池的实现过程可以通过以下步骤实现:如果现在线程中没有可以用的,创建一个新线程并添加到线程池中。终止并从缓存中移除哪些已有60秒(此时间可以设置)没有被使用的线程,因此长时间保存空闲的线程池不会使用任何资源。
    如图1所示,该过程可以包括:
    步骤11:当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片。
    具体实现时,识别用户在触摸屏上的滑动操作,若用户在触摸屏上的滑动操作未停止,通过锁定当前屏幕中的全部图片的方式,不加载当前屏幕中的图片。
    若用户在触摸屏上的滑动操作停止,不再锁定当前屏幕中的图片,同时,将当前屏幕中已经被锁定的图片解锁,将当前屏幕中已解锁的图片作为待加载图片,并获取当前屏幕中的每一个图片(即每一个项目Item)的标识。
    步骤12:确定待加载图片是否存储在缓存区中,若待加载图片已存储在缓存区中,则调用线程池中的线程加载已存储在缓存区中的待加载图片。
    其中,从终端的本地存储空间开辟文件缓存的方式可以包括:根据智能终端的本地存储空间的容量,按照预设的策略,确定文件缓存的容量。
    具体的,可以根据当前系统中各应用程序的运行情况来修改预设的存储空间的容量的阈值的大小,若运行中的其它应用程序较少,可以适当增大该阈值, 反之,则可以适当减小该阈值。以保证文件缓存在足够存储图片的前提下,保证一定的读取速率。
    具体实现时,可先从内存缓存中查找待加载图片,若未查找到,则再从文件缓存中查找该待加载图片,若仍未查找到,则执行步骤13。
    具体的,若从内存缓存中查找到待加载图片,则调用线程池中的线程加载该查找到的待加载图片,并不在文件缓存中查找该待加载图片。
    当从内存缓存中未查找到待加载图片,进一步的,从文件缓存中查找该待加载图片,若从文件缓存中查找到该待加载图片,则调用线程池中的线程加载该查找到的待加载图片,并将该图片存储到内存缓存中,或将该图片移动到内存缓存中。
    需要说明的是,除上述二级缓存机制,本发明实施例还可以采用其他缓存策略。
    步骤13:若待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载待加载图片进行加载。
    具体实现时,由于本发明实施例可以采用步骤11中的二级缓存机制,因此,待加载图片未存储在缓存区中的情况既包括:从内存缓存中未查找到该待加载图片,还包括:从文件缓存中未查找到该待加载图片。此时,调用线程池中的线程从网络下载该待加载图片。
    具体的,本发明实施例可以根据智能终端的处理器的数量N,确定线程池中的线程的数量,同样的,本发明实施例还可以根据当前的工作队列中的任务的性质,确定线程池中的线程的数量,例如,若在一个具有N个处理器的智能终端上只有一个工作队列,且该工作队列中的任务的性质为计算性质,则当线程池具有N个或N+1个线程时,会获得最大的CPU利用率。
    作为一种优选的实施例,图2示出了本发明实施例提供的选择只加载当前屏幕的过程的示意图。
    如图2所示,该过程可以包括:
    步骤21:监听触摸屏中的滑动操作。
    具体实现时,可以在ListView或GridView中添加滑动监听器OnScrollListener,使用OnScrollListener来监听滑动操作。OnScrollListener在ListView滑动时被触发。需要说明的是,本发明实施例中的滑动操作可以是用户沿触摸屏上下方向的纵向滑动,也可以是用户沿触摸屏左右方向的横向滑动,本发明实施例以监听用户的纵向滑动为例进行说明。
    步骤22:若滑动操作未停止,则将当前屏幕中的全部图片锁定。
    具体实现时,通过OnScrollListener监听用户在触摸屏上的滑动操作,当OnScrollListener监听到的滑动操作未停止时,OnScrollListener将当前屏幕中的全部图片(每一个Item)进行锁定,被锁定的图片不被加载。
    步骤23:若滑动操作停止,则不再锁定当前屏幕中的图片,并将当前屏幕中的已被锁定的图片进行解锁。
    具体实现时,通过OnScrollListener监听用户在触摸屏上的滑动操作,当OnScrollListener监听到的滑动操作停止时,OnScrollListener不再锁定当前屏幕中的图片(Item);同时,OnScrollListener将当前屏幕中的已锁定的图片进行解锁。
    根据步骤22和步骤23可以看出,本发明实施例中,通过在ListView或GridView中增加一个滑动监视器OnScrollListener的方式,实现只加载当前屏幕中的图片的过程,避免了由于用户滑动屏幕过快,造成的需要加载的图片过多,而导致的OOM。
    需要说明的是,本发明实施例在步骤21之后,步骤22之前,还可以包括:在初始化时,默认加载第一屏中的图片;或者,在初始化时,默认不加载第一屏中的图片,在识别到滑动操作开始之后,继续执行步骤22及步骤23。
    作为另一种优选的实施例,图3示出了本发明实施例提供的利用线程池中的多个线程优先从本地缓存区快速加载图片的过程的示意图。
    如图3所示,该过程可以包括:
    步骤31:当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片。
    具体实现时,步骤31可以与上述步骤21~步骤23相同。
    步骤32:若从内存缓存中查找到待加载图片,则加载该待加载图片。
    具体实现时,优先从内存缓存中查找待加载图片,若从内存缓存中查找到待加载图片,则加载该待加载图片;若从内存缓存中未查找到待加载图片,则执行步骤33。
    步骤33:若从文件缓存中查找到待加载图片,则加载该待加载图片,并将该待加载图片存储到内存缓存中。
    具体实现时,优先从内存缓存中查找待加载图片之后,再从文件缓存中查找待加载图片。若从文件缓存中查找到待加载图片,并将该待加载图片存储到内存缓存中或者将该待加载图片移动到内存缓存中;若从文件缓存中未查找到待加载图片,则执行步骤34。
    步骤34:若从内存缓存和文件缓存中均未查找到待加载图片,则从网络下载该待加载图片,并将下载后的图片存储到内存缓存和文件缓存中。
    具体实现时,若从内存缓存和文件缓存中均未查找到待加载图片,则认为该图片并未存储在缓存区中,在从网络下载该待加载图片之后,将下载后的图片存储到内存缓存和文件缓存中。
    具体的,步骤33和步骤34中加载图片和从网络下载图片的过程可以通过如下方式实现:
    ListView针对List中每个Item,要求适配器adapter给我一个视图(getView),一个新的视图被返回并显示。本发明实施例中的线程池中可以包括一个主线程和多个子线程,其中,主线程负责主界面UI的绘制和刷新,子线程负责每一个图片资源的加载,视图的获取是在主线程(UI线程)中完成的,本发明实施例将每个视图显示比较耗时的处理(例如加载图片处理)移到新建的子线程来处理(等在该子线程中完成图片加载处理后,通知UI线程,针对 具体视图进行刷新处理),创建子线程,将子线程放到线程池中处理。由于一个界面下显示多个视图,因此会创建多个子线程来处理。
    本发明实施例中,一方面,只有当触摸屏上的滑动操作停止时,才将当前屏幕中的图片作为待加载图片,解决了现有技术中由于需要加载的图片过多而造成的屏幕卡顿现象;另一方面,在图片加载过程中,首先确定待加载图片是否存储在缓存区中,若待加载图片已存储在缓存区中,则调用线程池中的线程加载已存储在缓存区中的待加载图片,若待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载待加载图片进行加载;从而大大提高了图片加载的速率,增强了用户体验。
    基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的图片加载装置。
    图4示出了本发明实施例提供的一种图片加载装置。如图4所示,该图片加载装置包括:
    加载确定单元41,用于当触摸屏上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片;
    图片查询单元42,用于确定所述待加载图片是否存储在缓存区中;
    图片加载单元43,用于若所述图片查询单元确定所述待加载图片已存储在所述缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的所述待加载图片,若所述图片查询单元确定所述待加载图片未存储在缓存区中,则调用线程池中的线程从网络下载所述待加载图片进行加载。
    较佳的,所述缓存区具体包括内存缓存和文件缓存;所述图片加载单元具体用于,若所述图片查询单元从所述内存缓存中查找到所述待加载图片,则调用线程池中的线程加载查找到的所述待加载图片;否则,从文件缓存中查找所述待加载图片;若所述图片查询单元从所述文件缓存中查找到所述待加载图片,则调用线程池中的线程加载所述待加载图片,并将所述存储在文件缓存中的所述待加载图片存储到所述内存缓存中。
    较佳的,所述缓存区具体包括内存缓存和文件缓存;所述图片加载单元具体用于,若所述图片加载单元从所述内存缓存中未查找到所述待加载图片,且从所述文件缓存中也未查找到所述待加载图片,则调用线程池中的线程从网络下载所述待加载图片,并将所述下载后的图片存储到所述内存缓存和所述文件缓存中。
    较佳的,所述线程池中的线程的数量为N或者N+1,所述N为处理器数量。
    较佳的,所述加载确定单元具体用于,识别所述触摸屏上的滑动操作,若所述滑动操作未停止,则不加载当前屏幕中的全部图片;若所述滑动操作停止,则将当前屏幕中的图片作为待加载图片。
    基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的实体装置。
    图5示出了本发明实施例提供的一种实体装置。如图5所示,该实体装置包括:
    触摸屏51,用于接收滑动操作;
    处理器52,用于确定触摸屏51上的滑动操作是否停止,当触摸屏51上的滑动操作停止时,确定当前屏幕中的全部图片为待加载图片;确定所述待加载图片是否存储在缓存区中,若所述待加载图片已存储在所述缓存区中,则调用线程池中的线程加载所述已存储在缓存区中的所述待加载图片,若所述待加载图片未存储在缓存区中,则调用线程池中的线程通过收发器54从网络下载所述待加载图片进行加载。
    较佳的,存储器53包括内存缓存和文件缓存;所述处理器52具体用于,若从所述内存缓存中查找到所述待加载图片,则调用线程池中的线程加载查找到的所述待加载图片;否则,从文件缓存中查找所述待加载图片;若从所述文件缓存中查找到所述待加载图片,则调用线程池中的线程加载所述待加载图片,并将所述存储在文件缓存中的所述待加载图片存储到所述内存缓存中。
    较佳的,存储器53包括内存缓存和文件缓存;所述处理器52具体用于,若从所述内存缓存中未查找到所述待加载图片,且从所述文件缓存中也未查找到所述待加载图片,则调用线程池中的线程通过收发器54从网络下载所述待加载图片,并将所述下载后的图片存储到所述内存缓存和所述文件缓存中。
    较佳的,所述线程池中的线程的数量为N或者N+1,所述N为处理器52数量。
    较佳的,所述处理器52具体用于,识别所述触摸屏51上的滑动操作,若所述滑动操作未停止,则不加载当前屏幕中的全部图片;若所述滑动操作停止,则将当前屏幕中的图片作为待加载图片。
    本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
    这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
    这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
    尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要 求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

    关 键  词:
    一种 图片 加载 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种图片加载方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4607910.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1