CN110727893B - 一种瀑布流图片的加载方法、装置和移动终端 - Google Patents
一种瀑布流图片的加载方法、装置和移动终端 Download PDFInfo
- Publication number
- CN110727893B CN110727893B CN201910964240.6A CN201910964240A CN110727893B CN 110727893 B CN110727893 B CN 110727893B CN 201910964240 A CN201910964240 A CN 201910964240A CN 110727893 B CN110727893 B CN 110727893B
- Authority
- CN
- China
- Prior art keywords
- picture
- loading
- pictures
- load
- model
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 166
- 230000000007 visual effect Effects 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims 2
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 239000004576 sand Substances 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- User Interface Of Digital Computer (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种瀑布流图片的加载方法,适于在移动终端中执行,包括步骤:向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据;将瀑布流数据缓存入本地的图片模型数组中,该图片模型数组包括多个按序对应于该多张图片的图片模型,该图片模型包括图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置;以及确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从所述图片模型数组中取出图片模型加载入加载线程,该加载线程具有最大同时加载数。本发明还公开了对应的瀑布流图片的加载装置和移动终端。
Description
技术领域
本发明涉及移动互联网通信领域,尤其涉及一种瀑布流图片的加载方法、装置和移动终端。
背景技术
瀑布流浏览模式是目前用户终端最受欢迎的一种沉浸式浏览模式,广泛的应用于图片浏览和视频预览等用户浏览行为中。瀑布流图片较多,加载过程比较耗时且耗流量,很容易产生内存激增现象,计算量突然增大,造成掉帧和卡顿问题。因此需要对基于该瀑布流图片的浏览进行优化
一种方案是在浏览过程中进行优化,即将用户浏览过的内容所占用的系统资源及时回收,在重新浏览时候再动态加载,在一定意义上可动态节省部分系统资源。但这种方法未考虑用户的浏览体验和运营商的流量消耗,当用户再次浏览被回收后的图片时,需要重新这些图片进行加载和渲染,浪费用户的等待时间,也再次消耗了用户的运营商流量,造成CPU和GPU浪费。
另一种方案是通过将已经加载完成的图片生成图片保存在本地沙盘(硬盘)中,再次浏览时读取沙盘中的图片,从而减小瀑布流图片在内存中的占用。但这种方法要对本地沙盘进行I/O(读取存储)操作,这种操作比较耗时,也会读取存储失败,尤其当用户快速浏览瀑布流时,极易导致掉帧情况发生。
因此,需要一种能同时兼顾用户浏览体验和内存优化的瀑布流图片加载方式。
发明内容
为此,本发明提供一种瀑布流图片的加载方法、装置方法和移动终端,以力图解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种瀑布流图片的加载方法,适于在移动终端中执行,该方法包括:向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据;将瀑布流数据缓存入本地的图片模型数组中,该图片模型数组包括多个按序对应于该多张图片的图片模型,该图片模型包括图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置;以及确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从图片模型数组中取出图片模型加载入加载线程,以在对应位置处显示图片,该加载线程具有最大同时加载数。
可选地,在根据本发明的加载方法中,还包括步骤:创建一个失败模型数组,将所有加载失败的图片模型存储到失败模型数组中,并在所述图片模型中记录图片的加载失败次数,所述加载失败次数的初始值为1,每加载失败一次,则该次数加1。
可选地,在根据本发明的方法中,还包括步骤:在页面的滑动过程中,判断失败模型数组是否为空,若不为空,则将该失败模型数组中的图片模型按照优先级顺序规则,加入到加载线程中进行图片加载。
可选地,在根据本发明的加载方法中,还包括步骤:若某图片模型的加载失败次数达到预定数值时,将该图片模型从所述失败模型数组中移除。
可选地,在根据本发明的加载方法中,图片参数包括图片地址、内存大小、宽度像素和高度像素中的一种或多种。
可选地,在根据本发明的加载方法中,还包括判定各瀑布流图片是否易加载的步骤:根据移动终端的当前综合性能和各瀑布流图片的内存大小计算易加载图片和不易加载图片的分界值,并根据该分界值将各瀑布流图片标记为易加载图片和不易记载图片。
可选地,在根据本发明的加载方法中,分界值Scritical的计算公式为:Scritical=Smin+(Smax-Smin)×(Smemory×ω1-Sscreen×ω2)其中,Sscreen和Smemory分别为所述移动终端的终端屏幕大小和当前可用内存大小,Smax和Smin分别为该多张瀑布流图片的最大内存值和最小内存值,ω1和ω2分别为权重系数。
可选地,在根据本发明的加载方法中,还包括计算各图片在终端屏幕中的理论显示位置的步骤:根据各瀑布流图片的宽度像素和高度像素、图片在该多张图片中的位置序号、以及所述终端屏幕大小,计算该图片在终端屏幕的理论显示位置。
可选地,在根据本发明的加载方法中,当前终端屏幕的可视区域为1.5倍的当前屏幕区域,图片的理论显示位置以图片的左上角顶点坐标(x,y)表示。
可选地,在根据本发明的加载方法中,最大同时加载数为可视区域内最后一个理论显示位置处的图片模型的位置序号。
可选地,在根据本发明的加载方法中,加载线程在最大同时加载数范围内,只有在完成一个图片模型的加载任务后,才会允许新一个图片模型进入到加载线程。
根据本发明的另一方面,提供了一种瀑布流图片的加载装置,适于驻留在移动终端中,该装置包括:图片获取模块,适于向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据;图片缓存模块,适于将瀑布流数据缓存入本地的图片模型数组中,该图片模型数组包括多个按序对应于该多张图片的图片模型,该图片模型包括图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置;以及图片加载模块,适于确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从图片模型数组中取出图片模型加载入加载线程,以在对应位置处显示图片,该加载线程具有最大同时加载数。
根据本发明的另一方面,提供了一种移动终端,包括:一个或多个处理器;存储器;和一个或多个程序,其中该一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,该一个或多个程序包括用于执行如上所述的瀑布流图片的加载方法的指令。
根据本发明的又一方面,提供了一种存储一个或多个程序的可读存储介质,该一个或多个程序包括指令,该指令当被移动终端执行时,使得该移动终端执行如上所述的瀑布流图片的加载方法。
根据本发明的技术方案,提供了一种完善的瀑布流浏览图片时的加载方法,这种方法能同时满足内存优化和用户浏览体验。在用户的浏览过程中,总是将当前最易加载且在可视范围内的图片优先加载给用户,之后才会加载可视范围内的不易加载图片、不可视范围内的易加载图片、以及不可视范围内的不易加载图片,从而极大提高整个瀑布流的加载速度,提高用户浏览的流畅性。
进一步地,本发明可以通过根据用户可视范围内的最大浏览数来确定同时加载图片的最大个数,也就是加载线程的最大同时加载数。在进行图片加载时,加载线程加载成功一个图片模型,才会允许一个图片模型进入。这样保证内存一直在缓慢增长而不会突然激增。另外,本发明还可以将加载失败的图片模型加入失败模型数组中,并记录加载失败次数,后续可从该失败模型数组中再次加载图片模型,直到某图片模型加载失败预定次数后,从该失败模型数组中移除。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的移动终端100的示意图;
图2示出了根据本发明一个实施例的瀑布流图片的加载方法200的流程图;
图3示出了根据本发明一个另实施例的瀑布流图片的加载方法的详细流程图;以及
图4示出了根据本发明一个实施例的瀑布流图片的加载装置400的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的移动终端100的结构框图。移动终端100可以包括存储器接口102、一个或多个数据处理器、图片处理器和/或中央处理单元104,以及外围接口106。
存储器接口102、一个或多个处理器104和/或外围接口106既可以是分立元件,也可以集成在一个或多个集成电路中。在移动终端100中,各种元件可以通过一条或多条通信总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口106,以便帮助实现多种功能。
例如,运动传感器110、光线传感器112和距离传感器114可以耦合到外围接口106,以方便定向、照明和测距等功能。其他传感器116同样可以与外围接口106相连,例如定位系统(例如GPS接收机)、加速度传感器、温度传感器、生物测定传感器或其他感测设备,由此可以帮助实施相关的功能。
相机子系统120和光学传感器122可以用于方便诸如记录照片和视频剪辑的相机功能的实现,其中所述相机子系统和光学传感器例如可以是电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器。可以通过一个或多个无线通信子系统124来帮助实现通信功能,其中无线通信子系统可以包括射频接收机和发射机和/或光(例如红外)接收机和发射机。无线通信子系统124的特定设计和实施方式可以取决于移动终端100所支持的一个或多个通信网络。例如,移动终端100可以包括被设计成支持LTE、3G、GSM网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及BlueboothTM网络的通信子系统124。
音频子系统126可以与扬声器128以及麦克风130相耦合,以便帮助实施启用语音的功能,例如语音识别、语音复制、数字记录和电话功能。I/O子系统140可以包括触摸屏控制器142和/或一个或多个其他输入控制器144。触摸屏控制器142可以耦合到触摸屏146。举例来说,该触摸屏146和触摸屏控制器142可以使用多种触摸感测技术中的任何一种来检测与之进行的接触和移动或是暂停,其中感测技术包括但不局限于电容性、电阻性、红外和表面声波技术。
一个或多个其他输入控制器144可以耦合到其他输入/控制设备148,例如一个或多个按钮、摇杆开关、拇指旋轮、红外端口、USB端口、和/或指示笔之类的指点设备。所述一个或多个按钮(未显示)可以包括用于控制扬声器128和/或麦克风130音量的向上/向下按钮。
存储器接口102可以与存储器150相耦合。该存储器150可以包括高速随机存取存储器和/或非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光学存储设备,和/或闪存存储器(例如NAND,NOR)。存储器150可以存储操作系统152,例如Android、iOS或是Windows Phone之类的操作系统。该操作系统152可以包括用于处理基本系统服务以及执行依赖于硬件的任务的指令。存储器150还可以存储应用154(即,应用程序,以下简称应用)。在移动终端运行时,会从存储器150中加载操作系统152,并且由处理器104执行。应用154在运行时,也会从存储器150中加载,并由处理器104执行。应用154运行在操作系统之上,利用操作系统以及底层硬件提供的接口实现各种用户期望的功能,如即时通信、网页浏览、图片管理、视频播放等。应用154可以是独立于操作系统提供的,也可以是操作系统自带的,包括各种社交应用软件,如QQ、微信、微博等,也包括各种视频播放游戏直播等应用软件,还可以包括相册、计算器、录音笔等系统自带应用程序。另外,应用154被安装到移动终端100中时,也可以向操作系统添加驱动模块。
本发明的实施例所提供的用于执行瀑布流图片的加载方法200的程序为应用154的一种。在一些实施例中,移动终端100被配置为执行根据本发明的瀑布流图片的加载方法200。
图2示出了根据本发明一个实施例的瀑布流图片的加载方法200的流程图,适于在移动终端中执行,如在移动终端100中执行,用于加载并显示瀑布流图片。
如图2所示,该方法始于步骤S210。在步骤S210中,向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据。
根据一个实施例,客户端向服务器发送的加载请求会携带该客户端的设备参,例如客户端的设备标识、设备类型、网络方式、当前已用内存大小、最大可用内存大小、屏幕大小等。当客户端连续请求多次(如3次)但均未返回数据时,可弹出异常页面结果。服务器返回的图片数量可根据需要进行自行设定,本发明对此不作限制。例如,服务器可根据终端的屏幕大小返回四屏到五屏的图片数量。返回的多张图片具有先后顺序,相应的每张图片具有位序号,例如第一张图片对应显示在当前屏幕中的第一个显示位置上,第二张图片显示在第二个显示位置上,等等。瀑布流数据包括图片的多个基本信息,如图片地址、图片序号、图片内存大小、尺寸大小等。
随后,在步骤S220中,将瀑布流数据缓存入本地的图片模型数组中,该图片模型数组包括多个按序对应于该多张图片的图片模型,所述图片模型由图片参数表示。
图片模型数组imageArray是用来存储服务器返回的多个瀑布流数据的图片模型imageModel的一维数组,其可以预先在本地创建,其中每一个图片模型都具有一个唯一的序号。一个图片模型对应于一张图片,该图片模型中存储图片的图片参数,这些图片参数可从瀑布流数据中解析得到,根据该图片模型可加载对应图片。
例如,本次请求得到的图片模型数组初始内容可以为[{imageModel0},{imageModel1},{imageModel2},{imageModel3},……,{imageModeln}],每个图片模型可由图片参数表示,例如可表示为{imageUrl(图片地址),imageSize(图片内存大小),imageWidth(图片宽度像素),imageHeight(图片高度像素)}。
此外,图片模型中还可以包括图片是否易记载的标记字段easyLoad,代表图片是易记载图片还是不易加载图片。例如,easyLoa=0代表不易加载,easyLoad=1代表易加载;或者值为0时易加载,为1时不易加载。当然还可以采取其他数值对应标记方式,本发明对此不作限制。
根据一个实施例,方法200还可以包括判定各瀑布流图片是否易加载的步骤:根据移动终端的当前综合性能和各瀑布流图片的内存大小计算易加载图片和不易加载图片的分界值,并根据该分界值将各瀑布流图片标记为易加载图片和不易记载图片。分界值可以采用多种权重公式进行计算,作为优选地,分界值Scritical=Smin+(Smax-Smin)×(Smemory×ω1-Sscreen×ω2),Sscreen和Smemory分别为移动终端的终端屏幕大小和当前可用内存大小,Smax和Smin分别为该多张瀑布流图片的最大内存值和最小内存值,ω1和ω2分别为权重系数。
应当理解的是,分界值可以采用一个固定的数值,只对服务器返回的第一批图片计算一个分界值,以后每批图片都采用该同一个分界值。分界值也可以每次都与当前终端性能关联,服务器每批返回的图片分界值可能不一样,这样更能够实现每批图片的动态灵活加载。
进一步地,图片模型中还可以包括图片在终端屏幕中的理论显示位置字段location,该位置字段可用图片的左上角顶点坐标(x,y)表示。根据一个实施例,方法200还可以包括计算各图片在终端屏幕中的理论显示位置的步骤:根据各瀑布流图片的宽度像素和高度像素、图片在该多张图片中的位置序号、以及终端屏幕大小,计算该图片在终端屏幕的理论显示位置。其中,图片在该多张图片中的位置序号也就是该图片所对应的图片模型在图片模型数组的位置序号。
图片的理论显示位置,也就是屏幕图片的理论布局计算,是目前比较成熟的方法,例如有等宽适配高度或等高适配宽度的计算方法。根据屏幕上的等宽或等高的宽高比例,对图片模型中的图片宽度像素或高度像素进行重新赋值,得到图片显示宽度或图片显示高度。本领域技术人员可以根据需要自行选定计算方法,只要能将多张图片在终端屏幕中正确布局即可,本发明对此不作限制。
至此,图片模型中的参数就包含了{imageUrl(图片地址),imageSize(图片内存大小),imageWidth(图片宽度像素),imageHeight(图片高度像素),easyLoad(易加载性),location(理论显示位置))}。取出一个图片模型即可在对应的显示位置处加载对应的图片。
需要说明的是,上述判定各瀑布流图片是否易加载的步骤、以及计算各图片在终端屏幕中的理论显示位置的步骤,可由移动终端执行,也可由服务器执行。
当由移动终端执行时,服务器返回的瀑布流数据只包含图片地址和内存等基本信息,不包含图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置。移动终端将这些基本信息缓存为初始的图片模型后,再计算图片是否易加载以及图片的理论显示位置,并将这两种参数的字段添加入对应的图片模型中,具体细节可参考图3的流程图进行理解。
当由服务器执行时,移动终端向服务器发送的图片加载请求含有当前终端的性能参数,因此服务器可根据其要返回的图片参数和终端的性能参数计算图片是否易加载,以及图片的理论显示位置。服务器返回的瀑布流数据除了图片基本信息,还可以有这两种参数字段。之后,移动终端对该瀑布流数据进行解析后,能得到完整的图片模型内容。
随后,在步骤S230中,确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从所述图片模型数组中取出图片模型加载入加载线程,以在对应位置处显示图片,该加载线程具有最大同时加载数。
根据一个实施例,终端屏幕的可视区域可根据用户机型的显示高度设置,如设置为1.5倍的当前屏幕区域,此时可视区域的宽度为屏幕宽度,高度为1.5倍屏幕高度。可视区域也就是当前屏幕和下半屏屏幕的总和。当然,也可以是2倍或其他倍数的当前屏幕区域,本发明对此不作限制。可视区域以外的区域即为不可视区域,也就是1.5倍屏幕区域的下方区域。
加载线程的最大同时加载数根据可视区域的范围计算,例如可取第一屏所要同时加载的个数为最大同时加载数。此时,取可视区域内最后一个理论显示位置处的图片模型的位置序号为最大同时加载数,该数目也就是可视区域内所要显示的图片数目。加载线程在该最大同时加载数范围内,只有在完成一个图片模型的加载任务后,才会允许新一个图片模型进入到加载线程。例如,加载线程最大只能同时加载10个图片模型,则当10个图片模型均在加载时时,只有当某个图片模型加载成功,加载线程才会允许下一个图片模型进入。
不同于传统的将所有任务都放到加载线程中的加载方式,本发明动态根据用户的可视范围和易加载与否来添加图像加载任务,加载线程处理的任务是有限的、逐渐增长的,能够有效避免内存的激增,加快图片加载效果。
考虑到每批图片大小不一样,相应的每批图片中可视区域所能同时显示的图片数量也不相同,因此最大同时加载数可以随着图片批次动态变化。最大同时加载数也可以采用固定值,已知终端屏幕大小确定,则每批瀑布流图图片的加载时都采用同一最大同时加载数,如都采用某个预设的数目(例如10),或者都采用第一批图片的最大同时加载数。这样随着用户的浏览行为,加载线程能够按照同一最大同时加载数源源不断地加载图片。
在进行图片加载时,图片模型数组的加载顺序从先到后依次为:可视范围易加载、可视范围不易加载、不可视范围易加载、不可视范围不易加载,至加载完成。具体地,首先从图片模型数组中取出当前可视区域内易加载的图片模型,放到加载线程中加载。若当前可视区域内的易加载图片小于最大同时加载数,则继续从图片模型数组中取可视区域内不易加载的图片模型到加载线程中。若用户可视范围内的易加载图片和不易加载的图片都加载完成,则继续从图片模型数组中取不可视区域内易加载的图片模型到加载线程中,继而再加载用户不可视范围内的不易加载的图片模型,直到将步骤S220中获得的图像模型数组加载完毕。
根据另一个实施例,方法200还可以包括步骤:创建一个失败模型数组,将所有加载失败的图片模型存储到失败模型数组中,并在图片模型中记录图片的加载失败次数。加载失败次数的初始值为1,每加载失败一次,则该次数加1。之后,在页面的滑动过程中,判断该失败模型数组是否为空,若不为空,则将该失败模型数组中的图片模型按照上述优先级顺序规则,加入到加载线程中进行图片加载。其中,若某图片模型的加载失败次数达到预定数值(如等于3次或等于4次)时,将该图片模型从失败模型数组中移除,放弃加载该图像模型。当失败模型数组为空时,代表整个瀑布流的加载完成。
在第一遍跟随用户浏览行为的加载过程中,所有加载失败的图片模型会存储到失败模型数组failLoadArray中,并给每个图片模型添加failLoadNum字段用来记录加载失败次数。该失败模型数组的一个示例为[{imageModel1,1},{imageModel5,3},{imageModel7,2},{imageModel11,2}],每个元素中逗号后面的数字即为加载失败次数。
当用户进行页面回翻浏览时,会重新加载失败模型数组中的每个失败模型,一般进行原位加载显示。若图像模型数组中没有图片模型要加载,也就是用户从服务器获取的上批图片已全部加载过,但还未继续向下浏览以请求下一批图片,则随着用户向上回翻浏览,只用加载失败模型数组,该数组的多个图片模型同样按照上述加载的优先级顺序进行加载。若图像模型数组中还有图片模型要加载(这种情况可能是上批图片模型还未加载完用户就回翻了;也可能是上批图片全部加载过后,又新获取了一批图片进行加载)则失败模型数组中那些加载失败的图片模型会和正常的图片模型数组的图片模型一起,按照上述可视范围和是否易加载的优先级顺序,进入加载线程中进行加载。
图4示出了根据本发明一个实施例的瀑布流图片的加载装置400的结构框图,该装置300可以驻留在移动终端中,如驻留在移动终端100中。如图4所示,装置400包括:图片获取模块410、图片缓存模块420和图片加载模块430。
图片获取模块410向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据。图片获取模块410可以进行与上面在步骤S210中描述的处理相对应的处理,这里不再展开赘述。
图片缓存模块420将瀑布流数据缓存入本地的图片模型数组中,该图片模型数据包括多个图片模型,每个图片模型包括图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置。图片缓存模块420可以进行与上面在步骤S220中描述的处理相对应的处理,这里不再展开赘述。
根据一个实施例,图片缓存模块420还可以根据移动终端的当前综合性能和各瀑布流图片的内存大小计算易加载图片和不易加载图片的分界值,并根据该分界值将各瀑布流图片标记为易加载图片和不易记载图片。图片缓存模块420进一步还可以根据各瀑布流图片的宽度像素和高度像素、图片在该多张图片位置序号、以及所述终端屏幕大小,计算该图片在终端屏幕的理论显示位置。
图片加载模块430确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从图片模型数组中取出图片模型加载入加载线程,以在对应位置处显示图片,该加载线程具有最大同时加载数。图片加载模块430可以进行与上面在步骤S230中描述的处理相对应的处理,这里不再展开赘述。
根据本发明的一个实施例,装置400还可以包括图片再加载模块(图中未示出),创建一个失败模型数组,将所有加载失败的图片模型存储到所述失败模型数组中,并在所述图片模型中记录图片的加载失败次数,所述加载失败次数的初始值为1,每加载失败一次,则该次数加1。图片再加载模块还可以在页面的滑动过程中,判断失败模型数组是否为空,若不为空,则将该失败模型数组中的图片模型按照上述优先级顺序规则,加入到加载线程中进行图片加载。若某图片模型的加载失败次数达到预定数值时,图片再加载模块可将该图片模型从失败模型数组中移除。
根据本发明的技术方案,根据用户的浏览行为将要加载的图片分为易加载图片和不易加载图片,将用户浏览分为可视范围和不可视范围。通过计算用户可视范围内最大浏览数结合当前最应该加载的图像,确定同时加载图像的最大个数,加载线程加载成功一个后再进入下一个,避免内存的激增。通过对加载图片的难易结合用户的可视范围来动态的加载图片,从而给用户最好的浏览体验。本发明从整个用户浏览行为入手,并不拘泥于节省系统资源,在解决内存激增的前提下,还更加兼顾了用户的浏览体验。另外,还提供了完善的容错处理机制,对一次浏览过程中加载失败的图片进行记录,当用户再次浏览时加入到加载线程中。
A8、如A1-A7中任一项所述的方法,还包括计算各图片在终端屏幕中的理论显示位置的步骤包括:根据各瀑布流图片的宽度像素和高度像素、图片在该多张图片位置序号、以及所述终端屏幕大小,计算该图片在终端屏幕的理论显示位置。A9、如A1-A8中任一项所述的方法,其中所述当前终端屏幕的可视区域为1.5倍的当前屏幕区域,所述图片的理论显示位置以图片的左上角顶点坐标(x,y)表示。A10、如A1-A9中任一项所述的方法,其中,所述最大同时加载数为可视区域内最后一个理论显示位置处的图片模型的位置序号。A11、如A1-A10中任一项所述的方法,其中所述加载线程在所述最大同时加载数范围内,只有在完成一个图片模型的加载任务后,才会允许新一个图片模型进入到加载线程。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的瀑布流图片的加载方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (11)
1.一种瀑布流图片的加载方法,适于在移动终端中执行,该方法包括:
向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据;
将所述瀑布流数据缓存入本地的图片模型数组中,所述图片模型数组包括多个按序对应于该多张图片的图片模型,所述图片模型包括图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置,所述图片模型由图片参数表示,所述图片参数包括图片地址、内存大小、宽度像素和高度像素中的一种或多种;
确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从所述图片模型数组中取出图片模型加载入加载线程,以在对应位置处显示图片,所述加载线程具有最大同时加载数;
其中,所述方法还包括判定各瀑布流图片是否易加载的步骤:
根据所述移动终端的当前综合性能和各瀑布流图片的内存大小计算易加载图片和不易加载图片的分界值,并根据该分界值将各瀑布流图片标记为易加载图片和不易记载图片;
所述分界值Scritical的计算公式为:
Scritical=Smin+(Smax-Smin)×(Smemory×ω1-Sscreen×ω2)
其中,Sscreen和Smemory分别为所述移动终端的终端屏幕大小和当前可用内存大小,Smax和Smin分别为该多张瀑布流图片的最大内存值和最小内存值,ω1和ω2分别为权重系数。
2.如权利要求1中所述的方法,还包括步骤:
创建一个失败模型数组,将所有加载失败的图片模型存储到所述失败模型数组中,并在所述图片模型中记录图片的加载失败次数,所述加载失败次数的初始值为1,每加载失败一次,则该次数加1。
3.如权利要求2中所述的方法,还包括步骤:
在页面的滑动过程中,判断所述失败模型数组是否为空,若不为空,则将该失败模型数组中的图片模型按照所述优先级顺序规则,加入到所述加载线程中进行图片加载。
4.如权利要求2所述的方法,还包括步骤:
若某图片模型的加载失败次数达到预定数值时,将该图片模型从所述失败模型数组中移除。
5.如权利要求1-4中任一项所述的方法,还包括计算各图片在终端屏幕中的理论显示位置的步骤包括:
根据各瀑布流图片的宽度像素和高度像素、图片在该多张图片位置序号、以及所述终端屏幕大小,计算该图片在终端屏幕的理论显示位置。
6.如权利要求1-4中任一项所述的方法,其中所述当前终端屏幕的可视区域为1.5倍的当前屏幕区域,所述图片的理论显示位置以图片的左上角顶点坐标(x,y)表示。
7.如权利要求1-4中任一项所述的方法,其中,所述最大同时加载数为可视区域内最后一个理论显示位置处的图片模型的位置序号。
8.如权利要求1-4中任一项所述的方法,其中所述加载线程在所述最大同时加载数范围内,只有在完成一个图片模型的加载任务后,才会允许新一个图片模型进入到加载线程。
9.一种瀑布流图片的加载装置,适于驻留在移动终端中,该装置包括:
图片获取模块,适于向服务器发送瀑布流图片的加载请求,并接收服务器返回的多张图片的瀑布流数据;
图片缓存模块,适于将所述瀑布流数据缓存入本地的图片模型数组中,所述图片模型数组包括多个按序对应于该多张图片的图片模型,所述图片模型包括图片是否易加载的标记字段和图片在终端屏幕上的理论显示位置,所述图片模型由图片参数表示,所述图片参数包括图片地址、内存大小、宽度像素和高度像素中的一种或多种,还适于判定各瀑布流图片是否易加载:根据所述移动终端的当前综合性能和各瀑布流图片的内存大小计算易加载图片和不易加载图片的分界值,并根据该分界值将各瀑布流图片标记为易加载图片和不易记载图片,所述分界值Scritical的计算公式为:
Scritical=Smin+(Smax-Smin)×(Smemory×ω1-Sscreen×ω2)
其中,Sscreen和Smemory分别为所述移动终端的终端屏幕大小和当前可用内存大小,Smax和Smin分别为该多张瀑布流图片的最大内存值和最小内存值,ω1和ω2分别为权重系数;以及
图片加载模块,适于确定当前终端屏幕的可视区域,并按照可视区域内的易加载图片、可视区域内的不易加载图片、不可视区域内的易加载图片、不可视区域内的不易加载图片的优先级顺序,依次从所述图片模型数组中取出图片模型加载入加载线程,以在对应位置处显示图片,所述加载线程具有最大同时加载数。
10.一种移动终端,包括:
至少一个处理器;以及
包括计算机程序指令的至少一个存储器;
所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使得所述移动终端执行如权利要求1-8中任一项所述的方法。
11.一种存储一个或多个程序的可读存储介质,所述一个或多个程序包括指令,所述指令当由移动终端执行时,使得所述移动终端执行根据权利要求1-8中所述的方法中的任一方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910964240.6A CN110727893B (zh) | 2019-10-11 | 2019-10-11 | 一种瀑布流图片的加载方法、装置和移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910964240.6A CN110727893B (zh) | 2019-10-11 | 2019-10-11 | 一种瀑布流图片的加载方法、装置和移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727893A CN110727893A (zh) | 2020-01-24 |
CN110727893B true CN110727893B (zh) | 2022-03-18 |
Family
ID=69221058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910964240.6A Active CN110727893B (zh) | 2019-10-11 | 2019-10-11 | 一种瀑布流图片的加载方法、装置和移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727893B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459480A (zh) * | 2020-03-20 | 2020-07-28 | 成都卓影科技股份有限公司 | 一种实现tv大屏无限瀑布流的方法 |
CN114546213B (zh) * | 2021-08-23 | 2023-04-28 | 成都统信软件技术有限公司 | 一种图片处理的方法、计算设备及可读存储介质 |
CN113867845A (zh) * | 2021-10-14 | 2021-12-31 | 北京齐尔布莱特科技有限公司 | 一种应用数据加载方法、装置和移动终端 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544253A (zh) * | 2013-10-15 | 2014-01-29 | Tcl集团股份有限公司 | 一种以瀑布流方式显示图片的实现方法及系统 |
CN103678622A (zh) * | 2013-12-18 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 瀑布流式图片动态呈现的方法及装置 |
CN104484235A (zh) * | 2014-11-24 | 2015-04-01 | 北京奇虎科技有限公司 | 一种基于瀑布流技术的内存优化方法及装置 |
CN105095200A (zh) * | 2014-04-16 | 2015-11-25 | 北大方正集团有限公司 | 以瀑布流方式显示图片的方法和设备 |
CN105373632A (zh) * | 2015-12-18 | 2016-03-02 | 北京奇虎科技有限公司 | 一种基于移动搜索的加载瀑布流的方法和装置 |
CN105786352A (zh) * | 2014-12-26 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 快速定位页面内容的方法、装置及移动终端 |
CN107343216A (zh) * | 2017-06-29 | 2017-11-10 | 环球智达科技(北京)有限公司 | 用于展示瀑布流页面的系统 |
CN107577757A (zh) * | 2017-08-31 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 页面瀑布流布局优化方法、存储介质、电子设备及系统 |
CN108228816A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 一种瀑布流图片的加载方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871945A (zh) * | 2015-01-19 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 图片信息发送方法和装置、瀑布流布局方法和装置 |
CN105183474B (zh) * | 2015-09-07 | 2018-08-14 | 深圳信壹网络有限公司 | 瀑布流式图片显示的方法和装置 |
CN110187781B (zh) * | 2019-05-30 | 2022-09-06 | 携程旅游信息技术(上海)有限公司 | 以瀑布流方式显示图片的方法、系统、设备和存储介质 |
-
2019
- 2019-10-11 CN CN201910964240.6A patent/CN110727893B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544253A (zh) * | 2013-10-15 | 2014-01-29 | Tcl集团股份有限公司 | 一种以瀑布流方式显示图片的实现方法及系统 |
CN103678622A (zh) * | 2013-12-18 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 瀑布流式图片动态呈现的方法及装置 |
CN105095200A (zh) * | 2014-04-16 | 2015-11-25 | 北大方正集团有限公司 | 以瀑布流方式显示图片的方法和设备 |
CN104484235A (zh) * | 2014-11-24 | 2015-04-01 | 北京奇虎科技有限公司 | 一种基于瀑布流技术的内存优化方法及装置 |
CN105786352A (zh) * | 2014-12-26 | 2016-07-20 | 阿里巴巴集团控股有限公司 | 快速定位页面内容的方法、装置及移动终端 |
CN105373632A (zh) * | 2015-12-18 | 2016-03-02 | 北京奇虎科技有限公司 | 一种基于移动搜索的加载瀑布流的方法和装置 |
CN107343216A (zh) * | 2017-06-29 | 2017-11-10 | 环球智达科技(北京)有限公司 | 用于展示瀑布流页面的系统 |
CN107577757A (zh) * | 2017-08-31 | 2018-01-12 | 武汉斗鱼网络科技有限公司 | 页面瀑布流布局优化方法、存储介质、电子设备及系统 |
CN108228816A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 一种瀑布流图片的加载方法和装置 |
Non-Patent Citations (1)
Title |
---|
高度自适应横向瀑布流布局的原理与实现;李维强 等;《电脑与信息技术》;20181015;第26卷(第5期);24-27 * |
Also Published As
Publication number | Publication date |
---|---|
CN110727893A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727893B (zh) | 一种瀑布流图片的加载方法、装置和移动终端 | |
JP6984840B2 (ja) | リアルタイムコメント表示方法及び電子機器 | |
CN108197602B (zh) | 一种卷积神经网络生成方法及表情识别方法 | |
CN107329750B (zh) | 应用程序中广告页面的识别方法、跳转方法及移动终端 | |
US10795553B2 (en) | Systems and methods for intelligent layered interactive programmatic elements for fixed content | |
CN110704184B (zh) | 一种应用内存优化方法、装置和移动终端 | |
CN107308641B (zh) | 一种游戏对象管理方法、装置和移动终端 | |
CN107766134B (zh) | 一种移动设备的系统清理方法及移动设备 | |
CN111581473B (zh) | 一种网页处理方法 | |
US20170091152A1 (en) | Generating grid layouts with mutable columns | |
CN107656866B (zh) | 一种测试应用流畅度的方法、移动终端和计算设备 | |
CN110647285A (zh) | 一种图片的显示方法、图片显示装置及移动终端 | |
CN114071047A (zh) | 帧率控制方法及相关装置 | |
CN110765398A (zh) | 一种页面内容的显示方法及移动终端 | |
CN113377289A (zh) | 一种缓存管理方法、系统、计算设备及可读存储介质 | |
US11770603B2 (en) | Image display method having visual effect of increasing size of target image, mobile terminal, and computer-readable storage medium | |
JP2013182524A (ja) | 画像処理装置、画像処理方法 | |
WO2017012488A1 (zh) | 滚动视图显示方法及装置 | |
CN112417339A (zh) | 一种页面加载方法、装置、计算设备及可读存储介质 | |
CN108564637B (zh) | 几何模型排布方法及装置 | |
CN115269077A (zh) | 一种图片显示方法、模块、移动终端及存储介质 | |
CN115933943A (zh) | 图像展示方法、装置及存储介质 | |
US20180144521A1 (en) | Geometric Work Scheduling of Irregularly Shaped Work Items | |
CN106354381B (zh) | 图像文件的处理方法及装置 | |
CN111444064A (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 |