CN103544207B - 一种图片加载显示的方法与*** - Google Patents
一种图片加载显示的方法与*** Download PDFInfo
- Publication number
- CN103544207B CN103544207B CN201310361511.1A CN201310361511A CN103544207B CN 103544207 B CN103544207 B CN 103544207B CN 201310361511 A CN201310361511 A CN 201310361511A CN 103544207 B CN103544207 B CN 103544207B
- Authority
- CN
- China
- Prior art keywords
- picture
- list
- loaded
- image
- downloading
- 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.)
- Expired - Fee Related
Links
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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- 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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种图片加载显示的方法与***,用于智能***中图片应用加载并显示图片,方法包括:建立图片列表,用于存放所有图片信息;建立图片加载列表,用于存放图片列表中需要加载的图片信息;建立图片显示列表,用于存放图片列表中需要显示的图片信息;建立已下载图片列表,用于存放已经下载的图片信息;图片应用启动后下载图片并将图片信息保存至所述图片列表中,根据图片显示列表中的图片总数量进行构建显示,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载显示。通过有目的加载及释放内存及合理的图片压缩下载可以缓解内存不足问题,也提高了浏览图片时的速度。
Description
技术领域
本发明涉及智能终端***,尤其涉及一种图片加载与显示的方法与***。
背景技术
目前,在android***中,图片应用程序在加载图片显示时经常会遇到内存不足的问题,当遇到内存不足时,需要释放部分内存后才能继续加载图片进行显示,内存不足再去释放内存继续加载对于***管理而言比较被动,也会造成图片显示速度减缓;并且,在图片显示过程中,将已经超出显示范围的图片,在不影响用户浏览速度的情况下释放后,可以得到更多的内存进行其它图片的加载,然而,即使在显示图片的过程中及时释放了已经不再占用内存的显示图片,依然可能存在内存不足的问题,比如加载一张高分辨率的图片就可以造成内存不足,导致***在加载显示图片中因此更有效的加载方式及内存管理机制是非常必要的。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足之处,本发明为解决现有技术的缺陷和不足,提出一种图片加载显示的方法与***,提出了一种能够及时释放内存、根据内存状况对图片进行合理压缩的图片加载显示方法与***,解决图片下载过程中内存不足问题,并提高图片浏览的流畅性。
本发明解决技术问题所采用的技术方案如下:
一种图片加载显示的方法,用于智能***中图片应用加载并显示图片,其中,包括如下步骤:
建立图片列表,用于存放所有图片信息;
建立图片加载列表,用于存放所述图片列表中需要加载的图片信息;
建立图片显示列表,用于存放所述图片列表中需要显示的图片信息;
建立已下载图片列表,用于存放已经下载的图片信息;
图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载;图片应用启动后下载图片并将图片信息保存至所述图片列表中,图片应用根据所述图片显示列表中的图片总数量进行构建显示相框,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载。
所述的图片加载显示的方法,其中,所述图片信息包括本地图片信息和网络图片信息。
所述的图片加载显示的方法,其中,还包括步骤:当图片加载线程启动后,通过该列表中存放的ID,找到图片列表中对应的图片信息,然后根据图片路径获取图片对象。
所述的图片加载显示的方法,其中,还包括步骤:构建图片显示列表时,将需要显示的图片在图片列表中的ID来判断当前加载列别中的图片是否需要加载或显示。
所述的图片加载显示的方法,其中,还包括步骤:当所述图片应用加载图片显示时,该图片ID不在所述图片显示列表中则不加载该图片,并将该图片ID从图片加载列表移出,如果用户操作不显示时则释放该图片不再显示。
一种图片加载显示的***,其中,所述***包括,图片列表建立模块、图片信息模块、图片下载压缩模块、图片加载模块、图片显示模块、已下载图片模块;
所述图片列表建立模块用于建立图片列表,用于存放所有图片信息;建立图片加载列表,用于存放所述图片列表中需要加载的图片信息;建立图片显示列表,用于存放所述图片列表中需要显示的图片信息;建立已下载图片列表,用于存放已经下载的图片信息;
所述图片信息模块用于图片应用启动后下载图片并将图片信息保存至所述图片列表中;
所述图片下载压缩模块用于图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载;
所述图片加载模块用于图片应用根据所述图片显示列表中的图片总数量进行构建显示相框,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载;
所述图片显示模块用于显示所述图片加载列表中的图片;
所述已下载图片模块用于记录已经下载的图片ID。
所述的图片加载显示的***,其中,所述图片信息模块用于根据本地图片信息或网络图片信息保存图片信息。
所述的图片加载显示的***,其中,所述图片加载模块用于判断图片应用在加载图片时是否加载所述图片显示列表中的图片。
与现有技术相比较,本发明通过建立图片列表、图片加载列表、图片显示列表和已下载图片列表来保存图片下载信息、图片是否加载显示的信息,图片应用线程启动后可根据上述表中的相关图片信息及显示状态信息来进行加载显示或释放图片的动作,实现有目的的加载及释放内存,以及进行合理的图片压缩下载,有效缓解了图片加载过程中内存不足的问题,提高了用户浏览图片的速度。并且,图片下载时,可以压缩下载,节约内存。
附图说明
图1是本发明图片加载显示方法实施例一的图片显示示意图。
图2是本发明图片加载显示方法实施例二的图片显示示意图。
图3是本发明图片加载显示方法实施例三的图片显示示意图。
图4是本发明图片加载显示方法实施例一、二、三的图片加载流程图。
图5是本发明图片加载显示方法实施例一、二、三的图片加载显示流程图。
图6是本发明实施例的图片加载显示的***功能原理框图。
具体实施方式
本发明提供的一种图片加载显示的方法与***,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的一种图片加载显示的方法,包括以下步骤:
第一步:首先建立用于存放所有图片信息图片列表。具体如下步骤1所述:
步骤1、获取各图片信息构建图片列表,用来存放所有的图片信息。包括:图片名称,图片路径,图片分辨率,图片大小等等。
本实例中,涉及的图片包括本地图片(存储于flash,SD卡,U盘等媒体介质)和网络图片。网络图片包括网络运营商服务器提供的图片及网上邻居获得的局域网内媒体介质图片。
其中,本地图片信息获得包括:通过硬件设备驱动层的扫描,获得当前媒体介质的路径名,然后根据图片后缀名(比如.jpg,.png,.gif等)对所有文件进行扫描,将扫描到的图片文件信息保存到图片列表。
网络图片信息获得通过以下方法获得:
a.网络运营商提供的图片信息获得:应用通过运营商提供的接口获得图片信息,将信息保存在图片列表中。运营商提供的接口由应用方及运营商方协议商定。
b.网上邻居获得局域网内媒体介质图片信息获得:通过网上邻居检测接口(网上邻居检测方法不在该发明范围内,故不详述)获得有共享资源的网上邻居地址(IP),然后扫描该地址下所有文件夹获得图片信息,将图片信息保存在图片列表中。
第二步、构建图片加载列表,构建图片显示列表,构建已下载图片列表(即步骤2)。
其中,步骤21、构建图片加载列表:用来存放需要加载的图片在图片列表中的ID和该图片下载完成后的用于显示的回调接口。
如图1至图3所示,当图片加载线程启动后,通过该图片加载列表中存放的ID,找到图片列表中对应的图片信息,然后根据图片路径获取图片对象;比如:最开始,当前屏幕10显示页是第1页,总共需要加载2页,当前显示给用户的是第1页,下一屏11的第2页作为缓存页,以保证用户查看图片速度的流畅性。如果一页显示15个,那么当前需要加载的图片为图片列表中的15*2=30个,那么,这个图片加载列表中就会按照加载顺序存放0到29;如果当前屏图片显示为第2页,则缓存页上一屏第1页,下一屏第3页,图片加载列表的顺序为:15~29,然后0~14,30~44(假设有足够多的图片)。
本发明实施例的图片加载列表中提供的图片的回调接口,用于图片下载完成时,判断图片是否需要显示并实现图片显示的方法。
步骤22、构建图片显示列表:用来存放需要显示的图片在图片列表中的ID,以及用来判断当前加载列表中的图片是否需要加载或显示。
具体地首先,可以将进行加载的图片ID和图片显示列表进行对比,如果该图片ID不在图片显示列表中,则直接略过,不加载当前图片,并将ID从图片加载列表移出;其次,加载图片时,该图片还是需要显示的,但因为图片加载需要时间,在加载完成后,因为用户的操作,显示页面已发生变化,图片不需要再显示,所以,应将其释放掉,让其不再显示,以保证图片浏览的正确性(该判定发生在图片加载列表定义的图片回调接口内)。
步骤23、构建已下载图片列表:用于存放已经下载好的当前显示屏及缓存屏幕图片的ID。在每一张图片下载之前,判断是否已有下载好的相同图片资源,以重复利用资源。
第三步:图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载;图片应用启动后下载图片并将图片信息保存至所述图片列表中,图片应用根据所述图片显示列表中的图片总数量进行构建显示相框,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载,具体如下所述,
图片的下载是从图片加载列表中获得图片ID而进行,如果正在下载的过程中(图片a尚未下载完成),用户进行了图片显示切换,即不再显示当前图片a,而是其它图片b,那么当a下载结束后,就要去跟图片显示列表中的图片信息进行对比,看是否还是需要显示的图片。
已下载图片则是保存已经下载成功的图片信息。因为要保存当前屏,上一屏/下一屏图片,所以切换过一屏后,实际是上一屏或者下一屏成为当前屏。如果之前已经下载好了图片上一屏或者下一屏的图片,就不需要重新下载,这就是此列表的作用。具体如下所述:
步骤3、分为A和B两种场景进行图片加载列表和图片显示列表加载的介绍。其它应用场景只需要设计好图片显示列表和图片加载列表,图片加载子线程的工作原理不发生变化。
A.每屏需要显示多张缩略图场景(相册应用等)。
根据图片总数量在屏幕上构建用于显示图片的相框,并以默认背景图片进行填充。修改图片加载列表和图片显示列表。设定当前图片总数为n,每屏幕显示图片为m,当前页为p,则构建屏幕相框为:
a.当p=1时,
当n<=m,则需要构建m个相框,并填充默认图片;将图片ID 0~m-1添加进图片加载列表和图片显示列表。
当n>m且n>2*m,则需要构建2*m个相框,并填充默认图片,将图片ID 0~2*m-1添加进图片加载列表和图片显示列表。
当n>m且n<=2*m,则需要构建n个相框,并填充默认图片,将图片ID 0~n-1添加进图片加载列表和图片显示列表。如图1上半部分所示。
b.当用户进行了翻屏浏览,p>1时,
当当前图片总数n<(p*m)时,则需要构建m+(n-(p-1)*m)个相框,并填充默认图片;将当前屏图片ID(p-1)*m~n–1及前一屏图片ID(p-2)*m~(p-1)*m-1添加进图片加载列表和图片显示列表,如图3上半部分所示。
当n>(p*m)且n<=(p+1)*m时,则需要构建2*m+(n-p*m)个相框,并填充默认图片;将当前屏图片ID(p-1)*m~p*m–1、前一屏图片ID(p-2)*m~(p-1)*m-1及后一屏图片ID p*m~n-1添加进图片加载列表和图片显示列表。
当n>(p+1)*m时,则需要构建3*m个相框,并填充默认图片;将当前屏图片ID(p-1)*m~p*m-1、前一屏图片ID(p-2)*m~(p-1)*m-1及后一屏图片ID p*m~(p+1)*m-1添加进图片加载列表和图片显示列表。
B.每屏只需要显示一张图片的应用场景(图片浏览器,网页中图片浏览等)。
设定图片总数为n,当前显示的图片ID为m。
a.当n=1时,构建一个相框,填充默认图片。将图片ID 0添加进图片加载列表和图片显示列表。
b.当用户进行了操作,n>1时
当m=0时,构建2个相框,填充默认图片。将图片ID 0和1添加进图片加载列表和图片显示列表。如图1下半部分所示。
当m>0时,构建3个相框,填充默认图片。将图片m,m-1和m+1添加进图片加载列表和图片显示列表。如图2下半部分所示。
当m=n-1时,构建2个相框,填充默认图片。将图片m,m-1添加进图片加载列表和图片显示列表。如图3下半部分所示。
本实施例中,需要说明的是,图片的加载是一个异步的过程,图片加载列表和图片显示列表是用于这个异步加载的,所以图片加载子线程和主线程是不分先后并发执行的;主线程中的图片加载列表和图片显示列表改变时,图片加载子线程中加载和显示的图片都会动态改变。
本实施例中构建的图片加载列表和图片显示列表是为了防止异步下载图片的时候,用户切换屏幕使得下载的图片已不需要显示而引发错误。已下载图片列表是保存下载完毕的图片以避免重复下载图片。
以下通过具体的例子对本发明的图片下载过程和图片显示过程做进一步说明:
其中,图片下载的详细过程如图4所示,具体包括:
步骤S10、下载子线程是否启动,当是时进入步骤S11,当否时进入步骤S12。
步骤S11、当子线程启动后,判断子线程是否处于等待状态,当是时进入步骤S13,当否时进入步骤S14。
步骤S12、当下载子线程没启动,则控制让下载子线程没启动并转入步骤S14。
步骤S13、激活,即当子线程为启动状态,但子线程是等待状态时,需再次激活子线程。所有图片下载完毕,所以子线程等待下一次的任务,需再次激活子线程。
本实施例中创建一个新的子线程也就是不需要判断等待状态的。只有已经创建的线程再次使用时才需要判断是不是之前已经处于等待状态需要激活继续干活。
步骤S14、判断图片加载列表是否为空?当是时进入步骤S15,当否时进入步骤S16。
步骤S15、子线程等待。本实施例中当图片加载列表长度为0时,图片加载子线程进入等待状态,等待用户的下次操作。
步骤S16、删除列表中第一个对象,并获得该ID,转入步骤S17。
步骤S17、判断是否在于图片显示列表?当否时返回步骤S14,当是时进入步骤S18。
步骤S18、判断是否存在于已下载图片列表?当是时返回S14,当否时进入步骤S19。
步骤S19、按需求技术压缩倍数,并进入步骤S20。
步骤S20、下载图片,并进入步骤S21。
步骤S21、判断内存是否溢出,当是时进入步骤S22,当否时进入步骤S23.
步骤S22、设定更大的压缩倍数,并返回步骤S20。即步骤S19-22当需下载图片时,根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载。这个一种牺牲图片质量的压缩方法,将原图片占用的内存量成倍数的压缩下来。比如一张1200*1200的图片,宽和高都压缩8倍,那么占用的内存就为原图的1/(8*8)=1/64。可以防止内存不足。
步骤S23、下载图片成功,并进入步骤S24。
步骤S24、加入到已下载图片列表。
本发明图片下载过程中,首先判断是否已启动图片加载子线程,未启动则进行启动;已经启动则判断子线程是否处于等待状态,如果处于等待状态则进行激活;其中,子线程的工作原理是:有工作的时候工作,没工作的时候休息等待。
然后判断图片加载列表是否为空,如果为空,图片加载子线程则进入等待状态;如果图片加载列表不为空,则继续以下操作。
移除图片加载列表中的第一个对象(如图4中的步骤S16),将该对象保存在一个临时变量I中(移除对象是为了保证在图片加载列表所有对象都判断结束时,列表已经为空)。从该变量I中获取该图片ID作为当前加载的图片ID,并去判断是否在图片显示列表中(如图4中的步骤S17)。不在,则跳过进行下一张图片下载;如果存在于图片显示列表中,再进入已下载图片列表去判断该图片ID是否已被成功下载(如步骤S18),如果已存在说明图片已经贴图成功,不需要重新下载,跳过进行下一图片的下载。
当图片下载成功时,将图片ID添加入已下载图片列表,从变量I中获得图片的回调函数,进行图片的显示处理;当加载列表长度为0,线程处于等待状态。
本实施例中,在图片下载之前,需要根据图片需求大小进行设置,当需下载图片时,根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载。即本实施例中下载到内存中的图片是经过压缩的图片而不是下载原图然后再调整图片大小。下载原图再调整大小并不能减少图片占用的内存量,至少在下载图片的过程中,内存的占用量还是很高的。比如原图大小1200*1200,屏幕显示的一张图片大小为:150*100,则可以将图片的宽高进行等比例压缩,进行1200/150=8倍的压缩,即下载后的图片是原来的1/8宽*1/8高=1/64原图大小,节约了很大部分的内存。如果经过需求大小比例压缩后的图片占用内存仍然超出了***提供的内存大小(如步骤S21),则可以将异常捕获然后将图片进行更小的比例压缩,获得更小的图片,在显示的时候做适当的拉伸,以满足应用所需图片的大小。此做法在缩略图制作时对内存的优化尤其明显。
本发明中,图片显示过程如图5所示,图片显示过程具体包括以下步骤:
步骤S30、用户查看下一屏图片,转入步骤S31。
步骤S31、判断下一屏图片是否存在,当否时进入步骤S32,当是时进入步骤S33。
步骤S32、提示用户,下一屏图片不存在。
步骤S33、下一屏图片显示为当前屏,并转入步骤S34。
步骤S34、清空图片加载列表和图片显示列表,并转入步骤S35。
步骤S35、切屏前上一屏图片是否存在,当是时进入步骤S36,当否时进入步骤S37。
步骤S36、已下载图片列表中删除该图片ID,并转入步骤S37。
步骤S37、切屏后下一屏图片是否存在,当是时进入步骤S38,当否时进入步骤S39。
步骤S38、创建下一屏相框,并转入步骤S39。
步骤S39、下载图片子线程,并转入步骤S40.
步骤S40、下载图片成功,并转入步骤S41。
步骤S41、调用图片回调函数,并转入步骤S42。
步骤S42、图片是否在图片显示列表中,当否时进入步骤S43,当是时进入步骤S44。
步骤S43、从已下载图片列表中删除并释放内存。
步骤S44、对应相框显示。
本实施例中,当用户浏览其它页图片时,终端会根据用户指示显示前一屏缓冲图片或后一屏缓冲图片作为当前屏图片。比如:当前屏显示页为第3页,左侧为第2页,右侧为第4页。用户需要浏览第2页图片,则屏幕向右滑动。此时,当前页变为第二页,左侧需要新添加第1页作为缓存页,右侧第3页作为缓存页。第4页图片已经不是缓存屏图片,需要释放内存。将该页的图片ID序列从已下载图片列表中删除掉,释放该屏图片占用的内存。与此同时清空图片加载列表及图片显示列表(如图5所示的步骤S34),根据前面所述的步骤3重新计算图片加载列表及图片显示列表。
而下载成功的图片调用在图片加载列表中注册实现的图片的回调函数(如图5所示的步骤S41)。该函数通过和图片显示列表对比,判断该图片是否为需要显示图片。如果是,则显示该图片,替换掉默认图片;否则,释放掉该图片所占用的内存,并将其从已下载图片列表中删除(注:在图片获取前后,由于时间较长,此时用户的翻页操作会导致图片显示列表和加载列表的变化,而正在下载的图片是不能被释放掉的,所以有此判断)。
本实施例中,因为图片为异步加载,所以图片加载子线程(图4和图5所示的步骤)和主线程(步骤1—>步骤3)是不分先后并发执行的,主线程中的图片加载列表和图片显示列表改变时,图片加载子线程中加载和显示的图片都会动态改变。
基于上述实施例,本发明还提供了一种图片加载显示的***,如图6所示,所述***包括:图片列表建立模块610、图片信息模块620、图片下载压缩模块630、图片加载模块640、图片显示模块650、已下载图片模块660;
其中,所述图片列表建立模块610用于建立图片列表,用于存放所有图片信息;建立图片加载列表,用于存放所述图片列表中需要加载的图片信息;建立图片显示列表,用于存放所述图片列表中需要显示的图片信息;建立已下载图片列表,用于存放已经下载的图片信息;
所述图片信息模块620用于图片应用启动后下载图片并将图片信息保存至所述图片列表中;
所述图片下载压缩模块630用于图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载;
所述图片加载模块640用于图片应用根据所述图片显示列表中的图片总数量进行构建显示相框,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载;
所述图片显示模块650用于显示所述图片加载列表中的图片;
所述已下载图片模块660用于记录已经下载的图片ID。
其中,所述图片信息模块620还用于根据本地图片信息或网络图片信息保存图片信息。
所述图片加载模块640还用于判断图片应用在加载图片时是否加载所述图片显示列表中的图片。
综上所述,本发明是通过建立图片列表、图片加载列表、图片显示列表和已下载图片列表,当图片加载线程启动后,根据上述图片列表的数据来判断图片是否已经下载、需要显示的图片的情况,以有效利用资源,当图片下载没有足够内存存放时可以进行压缩后下载存放,避免在图片加载过程中出现内存不足的情况,建立的列表计算数据量小,且能够有目的的加载图片及释放内存,缓解内存不足的问题,提高用户浏览图片的速度。
本发明中在加载图片时,将图片根据屏幕的显示需要(全屏显示,缩略图显示等)进行图片压缩下载请求,而不是原图下载耗费内存;如果下载过程中出现内存不足问题,可以将图片再进行压缩下载,下载后的图片拉伸显示,以牺牲图片显示质量的方式来保证图片下载效果。
本发明中图片显示是以当前屏幕展示给用户的图片为基准的。保留当前屏幕图片,预加载前后一部分图片作为缓存图片,就不会影响用户浏览图片的流畅性,而其它已经加载的图片内存将被释放,减小应用占用的内存量,使得浏览图片速度更快,也可以提供更多的内存给即将要显示的图片。
应当理解的是,以上所述仅为本发明的较佳实施例而已,并不足以限制本发明的技术方案,对本领域普通技术人员来说,在本发明的精神和原则之内,可以根据上述说明加以增减、替换、变换或改进,而所有这些增减、替换、变换或改进后的技术方案,都应属于本发明所附权利要求的保护范围。
Claims (6)
1.一种图片加载显示的方法,用于智能***中图片应用加载并显示图片,其特征在于,包括如下步骤:
建立图片列表,用于存放所有图片信息;
建立图片加载列表,用于存放所述图片列表中需要加载的图片信息;
建立图片显示列表,用于存放所述图片列表中需要显示的图片信息;
建立已下载图片列表,用于存放已经下载的图片信息;
所述图片信息包括:图片名称,图片路径,图片分辨率,图片大小以及图片ID;
图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载,并且下载到内存中的图片是经过压缩的图片而不是下载原图再调整图片大小;图片应用启动后下载图片并将图片信息保存至所述已下载图片列表中,图片应用根据所述图片显示列表中的图片总数量进行构建显示相框,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载;
当图片加载线程启动后,通过图片加载列表中存放的图片ID,找到图片列表中对应的图片信息,然后根据图片路径获取图片对象;
所述图片加载列表具体用于存放需要加载的图片在图片列表中的图片ID以及所述图片下载完成后的用于显示的回调接口;其中,所述回调接口具体用于,图片下载完成时,判断图片是否需要显示并实现图片显示;
所述图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载之后还包括:判断内存是否溢出,当是时,增大压缩倍数并返回执行对图片进行压缩下载的步骤;
当所述图片应用加载图片显示时,该图片ID不在所述图片显示列表中则不加载该图片,并将该图片ID从图片加载列表移出,如果用户操作不显示时则释放该图片不再显示;
在图片下载过程中,当判定图片加载列表为空时,图片加载子线程进入等待状态;当判定图片加载列表不为空时,移除图片加载列表中的第一个对象,将该对象保存在临时变量中,从该临时变量中获取该图片的图片ID作为当前加载的图片ID,并判断所述当前加载的图片ID是否在显示列表中,若不在,则进行下一张图片下载;若所述当前加载的图片ID存在于图片显示列表中,再进入已下载图片列表中判断该图片ID对应的图片是否已被成功下载;当图片下载成功时,将图片ID添加入已下载图片列表,并从所述临时变量中获取该图片的回调函数,进行该图片的显示处理。
2.根据权利要求1所述的图片加载显示的方法,其特征在于,所述图片信息包括本地图片信息和网络图片信息。
3.根据权利要求1所述的图片加载显示的方法,其特征在于,还包括步骤:构建图片显示列表时,将需要显示的图片根据所在图片列表中的图片ID来判断当前加载列表中的图片是否需要加载或显示。
4.一种图片加载显示的***,其特征在于,所述***包括,图片列表建立模块、图片信息模块、图片下载压缩模块、图片加载模块、图片显示模块、已下载图片模块;
所述图片列表建立模块用于建立图片列表,用于存放所有图片信息;建立图片加载列表,用于存放所述图片列表中需要加载的图片信息;建立图片显示列表,用于存放所述图片列表中需要显示的图片信息;建立已下载图片列表,用于存放已经下载的图片信息;
所述图片信息包括:图片名称,图片路径,图片分辨率,图片大小以及图片ID;
所述图片信息模块用于图片应用启动后下载图片并将图片信息保存至已下载图片列表中;
所述图片下载压缩模块用于图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载,并且下载到内存中的图片是经过压缩的图片而不是下载原图再调整图片大小;所述图片加载模块用于图片应用根据所述图片显示列表中的图片总数量进行构建显示相框,并根据当前显示屏的前一屏和/或后一屏需要显示的图片进行加载显示图片,超出当前显示屏的前一屏和/或后一屏需要显示的图片均不加载;
所述图片显示模块用于显示所述图片加载列表中的图片;
所述已下载图片模块用于记录已经下载的图片ID;
所述图片下载压缩模块还用于,当图片加载线程启动后,通过图片加载列表中存放的图片ID,找到图片列表中对应的图片信息,然后根据图片路径获取图片对象;
所述图片加载列表,具体用于存放需要加载的图片在图片列表中的图片ID以及所述图片下载完成后的用于显示的回调接口;其中,所述回调接口具体用于,图片下载完成时,判断图片是否需要显示并实现图片显示;
所述图片下载压缩模块还用于,在所述图片下载时根据屏幕的显示需要以及当前内存的使用率对图片进行压缩下载之后,判断内存是否溢出,当是时,增大压缩倍数并返回执行对图片进行压缩下载的步骤;
所述图片加载模块,还用于判断图片应用在加载图片时是否加载所述图片显示列表中的图片;
所述图片下载压缩模块还用于,在图片下载过程中,当判定图片加载列表为空时,图片加载子线程进入等待状态;当判定图片加载列表不为空时,移除图片加载列表中的第一个对象,将该对象保存在临时变量中,从该临时变量中获取该图片的图片ID作为当前加载的图片ID,并判断所述当前加载的图片ID是否在显示列表中,若不在,则进行下一张图片下载;若所述当前加载的图片ID存在于图片显示列表中,再进入已下载图片列表中判断该图片ID对应的图片是否已被成功下载;当图片下载成功时,将图片ID添加入已下载图片列表,并从所述临时变量中获取该图片的回调函数,进行该图片的显示处理。
5.根据权利要求4所述的图片加载显示的***,其特征在于,所述图片信息模块用于根据本地图片信息或网络图片信息保存图片信息。
6.根据权利要求4所述的图片加载显示的***,其特征在于,所述图片加载模块用于判断图片应用在加载图片时是否加载所述图片显示列表中的图片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310361511.1A CN103544207B (zh) | 2013-08-19 | 2013-08-19 | 一种图片加载显示的方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310361511.1A CN103544207B (zh) | 2013-08-19 | 2013-08-19 | 一种图片加载显示的方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103544207A CN103544207A (zh) | 2014-01-29 |
CN103544207B true CN103544207B (zh) | 2019-01-29 |
Family
ID=49967660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310361511.1A Expired - Fee Related CN103544207B (zh) | 2013-08-19 | 2013-08-19 | 一种图片加载显示的方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544207B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335047B (zh) * | 2014-08-14 | 2024-05-28 | 小米科技有限责任公司 | 显示图片的方法及装置 |
CN105446763B (zh) * | 2014-09-30 | 2019-01-29 | Tcl集团股份有限公司 | 一种图片加载与显示的方法及*** |
CN105989166B (zh) * | 2015-03-04 | 2019-06-21 | 阿里巴巴集团控股有限公司 | 瀑布流式显示对象的方法、装置、***及电子设备 |
WO2016183795A1 (en) * | 2015-05-19 | 2016-11-24 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method, apparatus for loading a resource in a web page on a device |
CN105045592A (zh) * | 2015-07-24 | 2015-11-11 | 北京金山安全软件有限公司 | 一种图片显示方法以及装置 |
CN105843831A (zh) * | 2016-01-15 | 2016-08-10 | 乐视移动智能信息技术(北京)有限公司 | 一种移动终端图片显示方法及*** |
CN109947340A (zh) * | 2016-03-21 | 2019-06-28 | 青岛海信移动通信技术股份有限公司 | 一种图片加载方法、装置及终端 |
CN106407367A (zh) * | 2016-09-08 | 2017-02-15 | 深圳市彬讯科技有限公司 | 一种在线快速查看图片的方法 |
CN106547624B (zh) * | 2016-11-04 | 2021-01-01 | 武汉斗鱼网络科技有限公司 | 基于Android的图片加载方法及装置 |
CN107179947A (zh) * | 2017-04-26 | 2017-09-19 | 武汉斗鱼网络科技有限公司 | 一种用于移动终端的网络图片下载方法及*** |
CN107193887B (zh) * | 2017-04-28 | 2019-01-29 | 武汉斗鱼网络科技有限公司 | 一种加载图片资源的方法及装置 |
CN107357650B (zh) * | 2017-06-06 | 2020-12-15 | 武汉斗鱼网络科技有限公司 | 一种基于图片资源的内存自动释放方法及*** |
CN108073698B (zh) * | 2017-12-11 | 2019-08-23 | 武汉斗鱼网络科技有限公司 | 实时动画显示方法、装置、电子终端及可读存储介质 |
CN109992406B (zh) * | 2017-12-29 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 图片请求方法、响应图片请求的方法及客户端 |
CN108769806B (zh) * | 2018-06-19 | 2020-05-05 | 聚好看科技股份有限公司 | 媒体内容的展示方法和装置 |
CN110175053B (zh) * | 2019-04-24 | 2023-10-27 | 创新先进技术有限公司 | 图片加载方法及装置 |
CN110658969B (zh) * | 2019-10-08 | 2024-01-09 | 广州市百果园信息技术有限公司 | 一种图片处理方法、装置、设备及存储介质 |
CN113360687A (zh) * | 2021-06-24 | 2021-09-07 | 平安普惠企业管理有限公司 | 图片保存方法、装置、移动终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221580A (zh) * | 2008-01-03 | 2008-07-16 | 中兴通讯股份有限公司 | 一种提高嵌入式浏览器页面显示性能的方法 |
CN102541538A (zh) * | 2011-12-06 | 2012-07-04 | Tcl集团股份有限公司 | 一种基于移动终端的图片显示方法及装置 |
CN102629254A (zh) * | 2012-02-29 | 2012-08-08 | 惠州市德赛西威汽车电子有限公司 | 图片快速读取方法 |
CN102650946A (zh) * | 2012-03-22 | 2012-08-29 | 杭州梵艺科技有限公司 | 在手持终端加载显示图形界面的方法 |
-
2013
- 2013-08-19 CN CN201310361511.1A patent/CN103544207B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221580A (zh) * | 2008-01-03 | 2008-07-16 | 中兴通讯股份有限公司 | 一种提高嵌入式浏览器页面显示性能的方法 |
CN102541538A (zh) * | 2011-12-06 | 2012-07-04 | Tcl集团股份有限公司 | 一种基于移动终端的图片显示方法及装置 |
CN102629254A (zh) * | 2012-02-29 | 2012-08-08 | 惠州市德赛西威汽车电子有限公司 | 图片快速读取方法 |
CN102650946A (zh) * | 2012-03-22 | 2012-08-29 | 杭州梵艺科技有限公司 | 在手持终端加载显示图形界面的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103544207A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544207B (zh) | 一种图片加载显示的方法与*** | |
CN111158619B (zh) | 一种图片处理方法及装置 | |
US8261205B2 (en) | User interface for presenting a list of thumbnail items associated with media items | |
CN102541538B (zh) | 一种基于移动终端的图片显示方法及装置 | |
CN106941567A (zh) | 显示网络图片的方法、装置以及用户终端 | |
US20100083098A1 (en) | Streaming Information that Describes a Webpage | |
CN102982044A (zh) | 一种网页浏览方法及装置 | |
CN110020323A (zh) | 混合应用的页面切换方法、框架、计算机设备及存储介质 | |
CN106982388B (zh) | 一种图片的显示方法和装置 | |
CN104199920A (zh) | 网页式应用的显示适配方法及装置 | |
CN106453572A (zh) | 基于云服务器同步图像的方法及*** | |
CN109361947A (zh) | 网络资源批量加载方法、智能电视、存储介质及装置 | |
CN105868420A (zh) | 一种网络资源加载方式配置方法及装置 | |
CN104793945A (zh) | 防止内存溢出的大批量图片显示方法及其装置 | |
CN110609718A (zh) | 图片加载方法、装置、电子设备及可读存储介质 | |
CN105912591A (zh) | 回看图像文件的方法、装置和移动终端 | |
CN110209447B (zh) | 一种列表页数据显示方法以及列表页数据显示装置 | |
CN111931095A (zh) | 一种Android***的图片加载方法 | |
CN108681469B (zh) | 基于Android***的页面缓存方法、装置、设备及存储介质 | |
CN106527891B (zh) | 一种编辑对象选择方法及相关装置 | |
CN103208128A (zh) | 显示图片的方法及装置 | |
CN112784188A (zh) | 一种页面渲染方法及装置 | |
CN111767417A (zh) | 应用图片的管理方法、装置、设备及存储介质 | |
CN115470427A (zh) | 页面加载方法、装置、设备以及存储介质 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190129 |