一种图片加载方法、装置及终端与流程

文档序号:18027912发布日期:2019-06-28 22:20阅读:151来源:国知局
一种图片加载方法、装置及终端与流程

本发明涉及通信领域,尤其涉及一种图片加载方法、装置及终端。



背景技术:

基于安卓android系统进行网络相关应用的设计和开发时,开发人员需要针对终端如何下载网络上存储的照片并显示已经下载的照片进行开发,为了达到这个目的,在针对手机等终端的应用的设计时,开发人员通常使用列表视图listview控件。

现有技术中,当使用listview控件加载图片时,若用户快速滑动终端触摸屏,对于屏幕中的每一个图片,listview控件都会启动一个线程用于加载该图片,用户滑过的图片越多,listview控件就会启动越多的线程,占用了大量的处理资源,容易出现屏幕卡顿现象。



技术实现要素:

本发明实施例提供了一种图片加载方法、装置及终端,用于解决现有技术中加载图片时占用大量处理资源、容易出现屏幕卡顿的问题。

一种图片加载方法,包括:

在终端触摸屏上的滑动操作过程中,确定终端当前屏幕中的图片为优先级最高的待加载图片;

采用单线程加载全部待加载图片;其中,所述优先级最高的待加载图片最先加载。

采用本发明实施例提供的图片加载方法,全部待加载图片中,当前屏幕中的图片为用户当前最希望看到的图片,即最需要加载的图片,因此,将该图片作为优先级最高的待加载图片,采用单线程优先加载该图片;而非当前屏幕中的图片不为用户当前最希望看到的图片,即不为最需要加载的图片,因此,将该图片作为优先级非最高的待加载图片,采用单线程稍后加载该图片;这样能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验。

在本发明实施例中,所述全部待加载图片为在终端触摸屏上的滑动操作过程中,屏幕中的所有图片。

较佳的,采用单线程加载全部待加载图片,具体包括:

针对每个待加载图片,确定该待加载图片是否存储在本地;

若该待加载图片存储在本地,则采用单线程从本地加载该待加载图片;若该待加载图片未存储在本地,则采用单线程从网络加载该待加载图片。

即在加载图片时,优先在本地查找加载,这样,能够提高图片加载速度,进一步节省处理资源。

较佳的,在采用单线程从网络加载该待加载图片之后,还包括:

将该待加载图片存储在本地。

这样,避免了再次加载同一图片时需要重新从网络加载的问题。

一种图片加载装置,包括:

优先级排序单元,用于在终端触摸屏上的滑动操作过程中,确定终端当前屏幕中的图片为优先级最高的待加载图片;

图片加载单元,用于采用单线程加载全部待加载图片;其中,所述优先级最高的待加载图片最先加载。

采用本发明实施例提供的图片加载装置,全部待加载图片中,当前屏幕中的图片为用户当前最希望看到的图片,即最需要加载的图片,因此,将该图片作为优先级最高的待加载图片,采用单线程优先加载该图片;而非当前屏幕中的图片不为用户当前最希望看到的图片,即不为最需要加载的图片,因此,将该图片作为优先级非最高的待加载图片,采用单线程稍后加载该图片;这样能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验。

在本发明实施例中,所述全部待加载图片为在终端触摸屏上的滑动操作过程中,屏幕中的所有图片。

较佳的,所述图片加载单元,具体用于针对每个待加载图片,确定该待加载图片是否存储在本地;若该待加载图片存储在本地,则采用单线程从本地加载该待加载图片;若该待加载图片未存储在本地,则采用单线程从网络加载该待加载图片。

即在加载图片时,优先在本地查找加载,这样,能够提高图片加载速度,进一步节省处理资源。

较佳的,所述图片加载单元,还用于在采用单线程从网络加载该待加载图片之后,将该待加载图片存储在本地。

这样,避免了再次加载同一图片时需要重新从网络加载的问题。

一种终端,包括:

用于接收滑动操作的触摸屏;以及

上述任一图片加载装置。

采用本发明实施例提供的终端,能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的图片加载方法的流程示意图;

图2为本发明实施例提供的图片加载方法的详细流程示意图;

图3为本发明实施例提供的图片加载装置的结构示意图;

图4为本发明实施例提供的一种终端的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供的一种加载图片的方法包括:采用单线程,优先加载终端触摸屏上的滑动操作停止时屏幕中的图片的过程。

本发明实施例提供的方法适用于具备触摸屏的终端,尤其适用于安装有android系统、并具备触摸屏的智能终端。

图1示出了本发明实施例提供的一种图片加载方法的流程示意图,该图片加载方法具体可以包括:

步骤101、在终端触摸屏上的滑动操作过程中,确定终端当前屏幕中的图片为优先级最高的待加载图片;

步骤102、采用单线程加载全部待加载图片;其中,优先级最高的待加载图片最先加载。

全部待加载图片中,当前屏幕中的图片为用户当前最希望看到的图片,即最需要加载的图片,因此,将该图片作为优先级最高的待加载图片,采用单线程优先加载该图片;而非当前屏幕中的图片不为用户当前最希望看到的图片,即不为最需要加载的图片,因此,将该图片作为优先级非最高的待加载图片,采用单线程稍后加载该图片;这样能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验。

在本发明实施例中,上述全部待加载图片为在终端触摸屏上的滑动操作过程中,屏幕中的所有图片。

需要说明的是,本发明实施例中的滑动操作可以是用户沿触摸屏上下方向的纵向滑动,也可以是用户沿触摸屏左右方向的横向滑动,本发明实施例对此不作具体限定。

在本发明实施例中,可以创建一个任务队列,滑动操作过程中,将当前屏幕中的图片对应的加载任务插入任务队列前端,单线程根据任务队列中的任务排序加载图片,即实现了优先加载当前屏幕中的图片,在加载完当前屏幕中的图片之后,再继续加载非当前屏幕中的图片,最终完成全部图片的加载。

当本发明实施例提供的图片加载方法应用于安装有android系统的触摸屏智能终端时,可以创建一个新的listview控件,以及创建一个新的adapter为该新的listview控件提供数据。并且还要创建一个taskqueue队列,即前述任务队列,此队列用来维护图片加载任务,当此队列为空时表示当前没有图片加载任务,如果此队列不为空时表示有图片加载任务。在创建adapter的同时,还要创建一个线程,用于按顺序处理taskqueue队列中的图片加载任务。

当用户进入listview控件界面,在触摸屏滑动操作开始时,可以调用getview方法将当前屏幕中图片的图片加载任务添加到taskqueue队列,同时调用notify方法唤醒线程。

在触摸屏滑动操作过程中,可以根据用户的滑动操作,向taskqueue队列中添加图片加载任务并进行排序,一直将当前屏幕中图片即需要呈现在用户面前图片的图片加载任务添加到taskqueue队列前端,进行优先处理;线程被唤醒后调用remove(0)方法,按照从前往后的顺序处理taskqueue队列中的图片加载任务,完成的图片加载任务会从taskqueue队列中删除。

在触摸屏滑动操作停止后,线程仍会继续处理taskqueue队列中的图片加载任务,直到taskqueue队列为空,当用户滑动停止以后,线程仍然会加载taskqueue队列中的图片加载任务,直到taskqueue队列为空,调用wait方法将线程阻塞,避免死循环或者线程退出。

当用户退出listview控件界面时,销毁线程,释放该线程占用内存。

实际实施时,可以采用下述算法实现将当前屏幕中图片的图片加载任务添加到taskqueue队列前端:

用户滑动触摸屏,假如当前屏幕中图片的加载任务对应的项目值为a到a+4,则从taskqueue队列前端开始查找是否存在a到a+4,即查找taskqueue队列中是否存在当前屏幕中图片的图片加载任务;

如果taskqueue队列中不存在a到a+4,则直接将a到a+4插入到taskqueue队列前端;

如果taskqueue队列中存在a到a+4,则将a到a+4从taskqueue队列中删除,加入到预先建立的一个线性单项链表b中,然后将线性单项链表b插入到taskqueue队列前端,清空将线性单项链表b。

用户重复滑动,则重复执行上述算法,即可实现一直将当前屏幕中图片的图片加载任务添加到taskqueue队列前端。

在本发明的一个实施例中,上述步骤102采用单线程加载全部待加载图片时,具体可以针对每个待加载图片,采用单线程从网络加载该待加载图片。

较佳的,在本发明的另一个实施例中,上述步骤102采用单线程加载全部待加载图片时,具体还可以针对每个待加载图片,确定该待加载图片是否存储在本地;若该待加载图片存储在本地,则采用单线程从本地加载该待加载图片;若该待加载图片未存储在本地,则采用单线程从网络加载该待加载图片。即在加载图片时,优先在本地查找加载,这样,能够提高图片加载速度,进一步节省处理资源。

进一步的,在采用单线程从网络加载该待加载图片之后,还可以将该待加载图片存储在本地。这样,之后再次加载同一图片时,可以直接从本地加载,避免了再次加载同一图片时需要重新从网络加载的问题,进一步保证了图片加载速度。

实际实施时,可以定义图片类型为软引用softreference类型来进行存储,当该类型图片不再使用时,系统会优先回收,因此能够一定程度上避免内存泄露。

图2示出了本发明实施例提供的针对每个待加载图片,利用单线程优先从本地快速加载图片的过程,具体可以包括如下步骤:

步骤201、判断待加载图片是否存储在本地。

当确定待加载图片存储在本地时,进入步骤202;

当确定待加载图片未存储在本地时,直接进入步骤203。

步骤202、从本地加载待加载图片,本次图片加载流程结束。

步骤203、从网络加载待加载图片。

步骤204、将该待加载图片存储在本地,本次图片加载流程结束。

可见,本发明实施例提供的图片加载方法,一方面,将当前屏幕中的图片作为优先级最高的待加载图片,采用单线程按照优先级加载全部待加载图片,能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验;另一方面,在图片加载过程中,首先确定待加载图片是否存储在本地,若待加载图片已存储在本地,则从本地加载待加载图片,若待加载图片未存储在本地,则从网络加载待加载图片,从而提高了图片加载速度,进一步节省了处理资源。

基于相同的技术构思,根据本发明实施例提供的上述图片加载方法,本发明实施例还提供了一种图片加载装置,如图3所示,该图片加载装置具体可以包括:

优先级排序单元301,用于在终端触摸屏上的滑动操作过程中,确定终端当前屏幕中的图片为优先级最高的待加载图片;

图片加载单元302,用于采用单线程加载全部待加载图片;其中,优先级最高的待加载图片最先加载。

全部待加载图片中,当前屏幕中的图片为用户当前最希望看到的图片,即最需要加载的图片,因此,将该图片作为优先级最高的待加载图片,采用单线程优先加载该图片;而非当前屏幕中的图片不为用户当前最希望看到的图片,即不为最需要加载的图片,因此,将该图片作为优先级非最高的待加载图片,采用单线程稍后加载该图片;这样能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验。

在本发明实施例中,全部待加载图片为在终端触摸屏上的滑动操作过程中,屏幕中的所有图片。

较佳的,图片加载单元302,具体用于针对每个待加载图片,确定该待加载图片是否存储在本地;若该待加载图片存储在本地,则采用单线程从本地加载该待加载图片;若该待加载图片未存储在本地,则采用单线程从网络加载该待加载图片。

即在加载图片时,优先在本地查找加载,这样,能够提高图片加载速度,进一步节省处理资源。

较佳的,图片加载单元302,还用于在采用单线程从网络加载该待加载图片之后,将该待加载图片存储在本地。

这样,避免了再次加载同一图片时需要重新从网络加载的问题。

上述各单元功能可以对应于图1或图2所示图片加载方法中的相应步骤,在此不再赘述。

基于相同的技术构思,本发明实施例还提供了一种终端,如图4所示,该终端具体可以包括:

用于接收滑动操作的触摸屏401,以及上述任一图片加载装置402。

采用本发明实施例提供的终端,能够节省处理资源,避免屏幕卡顿,并且能够保证用户的使用体验。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中特定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1