CN106020780B - 图片加载装置和方法 - Google Patents
图片加载装置和方法 Download PDFInfo
- Publication number
- CN106020780B CN106020780B CN201610338502.4A CN201610338502A CN106020780B CN 106020780 B CN106020780 B CN 106020780B CN 201610338502 A CN201610338502 A CN 201610338502A CN 106020780 B CN106020780 B CN 106020780B
- Authority
- CN
- China
- Prior art keywords
- picture
- task
- local
- decoding task
- loading
- 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 137
- 238000000034 method Methods 0.000 title claims abstract description 125
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000013507 mapping Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012958 reprocessing Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000000284 resting effect Effects 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种图片加载装置,该装置包括:指令模块,用于根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;去重模块,用于对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中;加载模块,用于若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片。本发明还公开了一种图片加载方法。本发明解决了本地图片加载卡顿的技术问题,用户查阅相册或滑动相册时图片加载过程流畅,实现了本地图片加载流畅、不卡顿。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种图片加载装置和方法。
背景技术
随着手机等移动终端的普及,用户在日常使用中,会保存大量的图片到移动终端本地,例如外出旅游时拍摄的照片,用于各种社交应用的表情图片等等。
当用户查看本地存储的照片,或是通过应用软件查看本地图片时,由于移动终端的处理速度有限,同时加载大量的图片到显示界面上会导致移动终端的UI(UserInterface,用户界面)线程无法响应,从而导致显示界面出现卡顿现象,用户无法滑动相册列表,或者是相册列表为空白、未显示图片的,严重影响了用户的使用体验。
发明内容
本发明的主要目的在于提供一种图片加载装置和方法,旨在解决本地图片加载卡顿的技术问题。
为实现上述目的,本发明提供一种图片加载装置,所述图片加载装置包括:
指令模块,用于根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;
去重模块,用于对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中;
加载模块,用于若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片。
在一个实施例中,所述图片加载装置还包括:
缓存模块,用于获取所述本地图片的缓存图片,创建所述缓存图片与所述本地图片的映射关系;
查找模块,用于根据基于本地图片输入的图片加载指令,以及所述映射关系,查找所述本地图片对应的缓存图片;
获取模块,用于若查找到所述本地图片对应的缓存图片,则获取所述本地图片对应的缓存图片,进行图片加载;
所述指令模块,还用于若未查找到所述本地图片对应的缓存图片,则根据所述图片加载指令,创建对应的图片解码任务。
在一个实施例中,所述去重模块还用于,
获取所述图片解码任务绑定的界面控件;根据所述界面控件,对所述图片任务堆栈中的任务进行去重处理;将所述图片解码任务压入所述图片任务堆栈。
在一个实施例中,所述图片加载装置还包括:
状态模块,用于根据所述图片进程的状态标志,获取所述图片进程的运行状态。
在一个实施例中,所述加载模块还用于,
若所述图片进程为空闲状态,则从所述图片任务堆栈中取出所述图片解码任务,更新所述状态标志为忙碌状态;执行所述图片解码任务,加载所述本地图片;更新所述状态标志为空闲状态。
此外,为实现上述目的,本发明还提供一种图片加载方法,所述图片加载方法包括以下步骤:
根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;
对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中;
若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片。
在一个实施例中,所述若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片的步骤之后,还包括:
获取所述本地图片的缓存图片,创建所述缓存图片与所述本地图片的映射关系;
所述根据基于本地图片输入的图片加载指令,创建对应的图片解码任务的步骤之前,还包括:
根据基于本地图片输入的图片加载指令,以及所述映射关系,查找所述本地图片对应的缓存图片;
若查找到所述本地图片对应的缓存图片,则获取所述本地图片对应的缓存图片,进行图片加载;
若未查找到所述本地图片对应的缓存图片,则转入执行步骤:根据基于本地图片输入的图片加载指令,创建对应的图片解码任务。
在一个实施例中,所述对图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中的步骤包括:
获取所述图片解码任务绑定的界面控件;
根据所述界面控件,对所述图片任务堆栈中的任务进行去重处理;
将所述图片解码任务压入所述图片任务堆栈。
在一个实施例中,所述若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片的步骤之前,还包括:
根据所述图片进程的状态标志,获取所述图片进程的运行状态;
若所述图片进程为空闲状态,则转入执行步骤:取出所述图片解码任务并执行,加载所述本地图片。
在一个实施例中,所述若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片的步骤包括:
若所述图片进程为空闲状态,则从所述图片任务堆栈中取出所述图片解码任务,更新所述状态标志为忙碌状态;
执行所述图片解码任务,加载所述本地图片;
更新所述状态标志为空闲状态。
本发明提出的一种图片加载装置和方法,通过指令模块根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;去重模块对预先配置的图片任务堆栈进行去重处理,将图片解码任务压入到图片任务堆栈中;若图片进程为空闲状态,则加载模块取出图片解码任务并执行,加载本地图片。本发明在收到用户基于本地图片输入的图片加载指令后,创建对应的图片解码任务;然后,对保存图片解码任务的图片任务堆栈进行去重处理,避免了用户重复输入相同的图片加载指令,导致移动终端重复执行同样的图片解码任务;然后,将当前图片解码任务压入到图片任务堆栈中,使得移动终端优先处理最新创建的图片解码任务,由于最新创建的图片解码任务为加载当前显示界面的图片,从而实现了优先执行当前显示界面的图片加载指令,已隐藏或划过的显示界面的图片加载指令则被延迟处理;当图片进程为空闲状态时,再取出图片解码任务并执行,保证了同一时间仅执行一个图片解码任务。由此,本发明通过在本地图片加载过程中优先处理当前显示界面对应的图片加载指令,同一时间仅执行一个图片解码任务,使得本地图片加载流畅,用户滑动相册时给用户带来了图片加载流畅的体验,解决了本地图片加载卡顿的技术问题。
附图说明
图1为实现本发明各个实施例一个移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为本发明图片加载装置第一实施例、第三实施例的模块示意图;
图4为本发明图片加载装置第二实施例的模块示意图;
图5为本发明图片加载装置第四实施例、第五实施例的模块示意图;
图6为本发明图片加载方法第一实施例的流程示意图;
图7为本发明图片加载方法第二实施例的流程示意图;
图8为本发明图片加载方法第三实施例的流程示意图;
图9为本发明图片加载方法第四实施例的流程示意图;
图10为本发明图片加载方法第五实施例的流程示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的一个可选的移动终端硬件结构示意。
移动终端100可以包括无线通信单元110、用户输入单元120、感测单元130、输出单元140、存储器150、接口单元160、控制器170和电源单元180等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块、移动通信模块、无线互联网模块、短程通信模块和位置信息模块中的至少一个。
用户输入单元120可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元120允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元141上时,可以形成触摸屏。
感测单元130检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元130可以感测该滑动型电话是打开还是关闭。另外,感测单元130能够检测电源单元180是否提供电力或者接口单元160是否与外部装置耦接。
输出单元140被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元140可以包括显示单元141等等。
显示单元141可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元141可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元141可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元141和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元141可以用作输入装置和输出装置。显示单元141可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
存储器150可以存储由控制器170执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器150可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器150可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器150的存储功能的网络存储装置协作。
接口单元160用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元160可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
控制器170通常控制移动终端的总体操作。例如,控制器170执行与语音通话、数据通信、视频通话等等相关的控制和处理。控制器170可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元180在控制器170的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器170中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器150中并且由控制器170执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信系统(UMTS)(特别地,长期演进(LTE))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC275。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在系统内操作的移动终端100。。在图2中,示出了几个全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是需要理解的是,可以利用任何数目的卫星获得有用的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构以及通信系统,提出本发明各个实施例。
参照图3,本发明图片加载装置第一实施例提供一种图片加载装置,所述图片加载装置包括:
指令模块10,用于根据基于本地图片输入的图片加载指令,创建对应的图片解码任务。
本实施例在用户查看移动终端本地的图片时,通过去除重复的图片加载任务,从而使移动终端仅处理当前显示界面的图片加载任务,进行图片的加载,解决了图片加载的卡顿问题。图片加载装置部署在移动终端中。
具体的,作为一种实施方式,首先,指令模块10接收用户基于本地图片输入的图片加载指令。用户可以通过打开相册、滑动相册或者是通过应用软件查看相册等形式,输入图片加载指令,用于控制加载当前显示界面中的本地图片。图片加载指令可以控制同时加载一张或多张本地图片。
需要说明的是,图片加载指令对应的本地图片可存储于移动终端的内存,或者是外接SD(Secure Digital Memory Card,安全数字存储卡)卡、移动硬盘等存储设备中。
指令模块10根据当前用户输入的图片加载指令创建对应的图片解码任务,用于解码移动终端中存储的本地图片,加载到当前的显示界面中。
同时,指令模块10获取当前图片解码任务的任务属性,也可称为ImageRef(图片参数)。参照下述表1,图片解码任务的任务属性包括imageView(图片显示控件)、filePath(文件路径)、width(宽)、height(高)等。
属性名称 | 属性描述 |
imageView | 任务对应绑定的控件 |
filePath | 图片对应的路径 |
width | 图片的宽度 |
height | 图片的高度 |
表1
其中,imageView为当前图片解析任务对应绑定的控件,也即当前UI(UserInterface,用户界面)界面加载图片的控件;filePath为当前加载的本地图片的存储路径;width为本地图片显示在UI界面时的宽度;height为本地图片显示在UI界面时的高度。
由此,指令模块10得到图片解码任务。
去重模块20,用于对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中。
在得到图片解码任务后,去重模块20对预先配置的图片任务堆栈进行去重处理,然后将图片解码任务压入到图片任务堆栈。
具体的,作为一种实施方式,首先,去重模块20预先创建并配置图片任务堆栈(Image Task Stack),用于保护用户查看相册或滑动相册时,产生的图片加载指令所对应的图片解码任务。图片任务堆栈中保存了创建的图片解码任务。
去重模块20去除堆栈中与当前图片解码任务相同的任务,避免重复执行相同的任务。
然后,去重模块20将当前图片解码任务压入图片任务堆栈中,使当前图片解码任务位于图片任务堆栈的顶层,从而能够优先处理最新创建的图片解码任务。
加载模块30,用于若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片。
在将图片解码任务压入到图片任务堆栈中后,若当前图片进程为空闲状态,则加载模块30从图片任务堆栈中取出最顶层的图片解码任务并执行,加载移动终端的本地图片。
具体的,作为一种实施方式,图片进程(Image Thread)用于解码本地图片、加载到UI界面中。
加载模块30获取图片进程当前的处理状态,若当前图片进程为空闲状态,未执行图片解码任务,则加载模块30控制从图片任务堆栈中弹出最上层的图片解码任务,也即从图片任务堆栈中取出图片解码任务。
然后,加载模块30控制图片进程执行图片解码任务,获取需要加载的本地图片,并根据任务属性将本地图片压缩或剪裁为当前UI界面显示图片的尺寸。
图片进程完成图片解码任务后,加载模块30通知UI线程刷新当前界面,显示处理后的本地图片。
由此,实现了移动终端本地图片的加载。
在本实施例中,指令模块10根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;去重模块20对预先配置的图片任务堆栈进行去重处理,将图片解码任务压入到图片任务堆栈中;若图片进程为空闲状态,则加载模块30取出图片解码任务并执行,加载本地图片。本实施例在收到用户基于本地图片输入的图片加载指令后,创建对应的图片解码任务;然后,对保存图片解码任务的图片任务堆栈进行去重处理,避免了用户重复输入相同的图片加载指令,导致移动终端重复执行同样的图片解码任务;然后,将当前图片解码任务压入到图片任务堆栈中,使得移动终端优先处理最新创建的图片解码任务,由于最新创建的图片解码任务为加载当前显示界面的图片,从而实现了优先执行当前显示界面的图片加载指令,已隐藏或划过的显示界面的图片加载指令则被延迟处理;当图片进程为空闲状态时,再取出图片解码任务并执行,保证了同一时间仅执行一个图片解码任务。由此,本实施例通过在本地图片加载过程中优先处理当前显示界面对应的图片加载指令,同一时间仅执行一个图片解码任务,使得本地图片加载流畅,用户滑动相册时给用户带来了图片加载流畅的体验,解决了本地图片加载卡顿的技术问题。
进一步的,参照图4,本发明图片加载装置第二实施例提供一种图片加载装置,基于上述图3所示的实施例,所述图片加载装置还包括:
缓存模块40,用于获取所述本地图片的缓存图片,创建所述缓存图片与所述本地图片的映射关系。
本实施例与上述本发明图片加载装置第一实施例的区别在于:本实施例通过获取已加载的本地图片的缓存图片,实现了当再次加载本地图片时,可直接加载缓存图片,减少了图片加载指令的处理过程,提高了图片加载速度和流畅度。
作为一种实施方式,在图片解码任务完成执行、加载本地图片后,缓存模块40获取当前加载的本地图片的缓存图片,并创建当前本地图片与对应的缓存图片的映射关系。
具体的,图片解码任务完成执行后,缓存模块40获取当前显示界面加载显示的图片作为本地图片对应的缓存图片,将缓存图片存入移动终端内存的缓存区中,例如磁盘cache(高速缓冲存储器),便于后续快速的调取使用。
并且,缓存模块40创建缓存图片与本地图片的映射关系,从而可以根据移动终端本地的本地图片查找到对应的缓存图片。
对应的,所述图片加载装置还包括:
查找模块50,用于根据基于本地图片输入的图片加载指令,以及所述映射关系,查找所述本地图片对应的缓存图片。
在收到用户基于本地图片输入的图片加载指令后,查找模块50首先根据图片加载指令获取当前需要加载的本地图片,可以使用存储路径及ID(编号)等识别信息标识本地图片。
然后,查找模块50根据配置的映射关系和本地图片的标识信息,在缓存区中查找本地图片对应的缓存图片。
获取模块60,用于若查找到所述本地图片对应的缓存图片,则获取所述本地图片对应的缓存图片,进行图片加载;所述指令模块10,还用于若未查找到所述本地图片对应的缓存图片,则根据所述图片加载指令,创建对应的图片解码任务。
若成功查找到本地图片对应的缓存图片,则获取模块60获取本地图片对应的缓存图片,将得到的缓存图片进行解析,加载到当前的显示界面中。
由此,减少了图片的解析、加载时间,无需再次执行图片解码任务,减轻了移动终端的运行负担,提高了图片额加载速度。
作为另一种实施方式,若在移动终端的缓存区中未成功查找到本地图片对应的缓存图片,则指令模块10根据图片加载指令创建对应的图片解码任务,执行图片解码任务加载本地图片。
本实施例在加载本地图片后,缓存模块40获取本地图片的缓存图片,创建缓存图片与本地图片的映射关系;收到图片加载指令时,查找模块50根据基于本地图片输入的图片加载指令,以及配置的映射关系,查找本地图片对应的缓存图片;若查找到本地图片对应的缓存图片,则获取模块60获取本地图片对应的缓存图片,进行图片加载;若未查找到本地图片对应的缓存图片,则指令模块10根据图片记载指令创建对应的图片解码任务,执行图片解码任务加载本地图片。本实施例在加载本地图片后,获取本地图片的缓存图片,创建缓存图片与本地图片的映射关系;由此,在收到用户输入的图片加载指令时,根据图片记载指令获取当前需要加载的本地图片,并根据配置的映射关系查找本地图片对应的缓存图片;若成功查找到缓存图片,则可以直接加载缓存图片,提升了图片加载速度,避免重复处理同一本地图片的图片解码任务,减轻了移动终端的处理负担;若未查到当前本地图片的缓存图片,则创建图片解码任务,进行图片解码任务的处理。本实施例通过缓存已加载的图片,提高了移动终端的本地图片加载速度,提升了本地图片加载的流畅程度。
进一步的,参照图3,本发明图片加载装置第三实施例提供一种图片加载装置,基于上述图3或图4所示的实施例(本实施例以图3所示的本发明图片加载装置第一实施例为例),所述去重模块20还用于,
获取所述图片解码任务绑定的界面控件;根据所述界面控件,对所述图片任务堆栈中的任务进行去重处理;将所述图片解码任务压入所述图片任务堆栈。
本实施例与上述本发明图片加载装置第一实施例和第二实施例的区别在于:本实施例通过图片解码任务绑定的界面控件进行图片任务堆栈的去重处理,避免了执行同一界面控件复用而产生的大量过期任务,减轻了处理负担,加快了图片解码任务的执行速度。
在获取图片解码任务后,具体的,作为一种实施方式,首先,去重模块20根据图片解码任务的任务属性,获取图片解码任务绑定的界面控件。
当用户在查看相册时,滑动显示界面,复用加载本地图片的界面控件,导致同一界面控件产生较多的图片解码任务。
当用户滑过上一显示界面,停留在当前显示界面时,上一显示界面的图片解码任务还保存在图片任务堆栈中,此时,由于上一显示界面的图片解码任务与当前显示界面的图片解码任务绑定了同一界面控件,则可以根据界面控件删除图片任务堆栈中上一显示界面的图片解码任务,进行去重处理。使图片加载装置无需再处理上一显示界面的图片解码任务,不再加载上一显示界面的本地图片,仅处理当前显示界面的图片解码任务,加载当前显示界面的本地图片。
具体的,去重模块20根据图片任务堆栈中已存储的各图片解码任务的任务属性,筛选出与当前图片解码任务所绑定的界面控件相同的任务。
然后,去重模块20删除图片任务堆栈中,与当前图片解码任务所绑定的界面控件相同的任务,也即删除图片任务堆栈中当前界面控件绑定的所有任务。
在对图片任务堆栈中的任务进行去重处理后,去重模块20将当前图片解码任务压入图片任务堆栈中,则当前图片解码任务位于图片任务堆栈的顶层,若图片进程为空闲,则优先处理位于顶层的当前图片解码任务,提高了图片加载的速度。
在本实施例中,去重模块20获取图片解码任务绑定的界面控件;然后根据界面控件,对图片任务堆栈中的任务进行去重处理;然后,将图片解码任务压入图片任务堆栈。本实施例通过获取图片解码任务绑定的界面控件,根据当前图片解码任务绑定的界面控件对图片任务堆栈进行去重,删除了图片任务堆栈中,与当前图片解码任务绑定的界面控件相同的任务,避免了由于用户滑动显示界面时同一界面控件复用,而导致产生的多个图片解码任务被重复执行,影响图片的加载速度,极大地提升了移动终端的本地图片加载速度。
进一步的,参照图5,本发明图片加载装置第四实施例提供一种图片加载装置,基于上述图3所示的本发明图片加载装置第三实施例,图片加载装置还包括:
状态模块70,用于根据所述图片进程的状态标志,获取所述图片进程的运行状态。
本实施例与上述本发明图片加载装置第三实施例的区别在于:本实施例通过查看图片进程的状态标志,实时准确获取图片进程的当前状态,保证同一时间仅执行一个图片解码任务,避免多个图片解码任务同时执行降低图片的加载速度。
在将图片解码任务压入图片任务堆栈中后,状态模块70根据图片进程的状态标志(Flag),获取当前图片进程的运行状态。
例如,若图片进程的Flag标记为False(否),则当前图片进程为忙碌状态;若图片进程的Flag标记为True,则当前图片进程为空闲状态。
由此,状态模块70获取图片进程的当前运行状态。
若图片进程的当前运行状态为空闲状态,则加载模块30执行图片解码任务,加载本地图片。
在本实施例中,状态模块70根据图片进程的状态标志,获取图片进程的运行状态;若图片运行状态为空闲状态,则加载模块30执行图片解码任务,加载本地图片。本实施例通过图片进程的状态标记,实现了准确获取图片进程的运行状态,保证了同一时间仅处理一个图片解码任务,提高了图片解码的处理速度,也即提高了图片加载速度。
进一步的,参照图5,本发明图片加载装置第五实施例提供一种图片加载装置,基于上述图5所示的本发明图片加载装置第四实施例,所述加载模块30还用于,
若所述图片进程为空闲状态,则从所述图片任务堆栈中取出所述图片解码任务,更新所述状态标志为忙碌状态;执行所述图片解码任务,加载所述本地图片;更新所述状态标志为空闲状态。
本实施例与上述本发明图片加载装置第四实施例的区别在于:本实施例通过在执行图片解码任务的过程中即时更新图片进程的状态标记,使得图片进程的状态标记为最新且准确的,从而更加准确的获取图片进程的运行状态。
具体的,若当前图片进程为空闲状态,则加载模块30从图片任务堆栈中取出当前图片解码任务,将图片解码任务增加到请求队列(Request Queue)中。
同时,加载模块30将图片进程的状态标志修改为False,也即更新状态标志为忙碌状态。
然后,加载模块30控制图片进程执行请求队列中的图片解码任务,根据任务属性查找本地图片进行解码,并根据当前UI界面显示图片的尺寸压缩或剪裁本地图片,得到本地图片的显示小图,用于显示在UI界面中,还可以用作本地图片对应的缓存图片。
然后,加载模块30刷新UI界面,将本地图片的显示小图显示在UI界面中。
加载模块30在执行完成当前的图片解码任务后,将图片进程的状态标志修改为True,也即更新状态标志为空闲状态。
然后,加载模块30取出图片任务堆栈中当前最顶层的图片解码任务,并控制图片进程执行。
在本实施例中,若图片进程为空闲状态,则加载模块30从图片任务堆栈中取出图片解码任务,更新状态标志为忙碌状态;然后,执行图片解码任务,加载本地图片;然后,加载模块30更新状态标志为空闲状态。本实施例通过在执行图片解码任务的过程中即时更新图片进程的状态标志,明确图片进程的运行状态,保证同一时间仅执行一个图片解码任务,提高了本地图片的加载速度。
参照图6,本发明图片加载方法第一实施例提供一种图片加载方法,可通过上述图片加载装置第一实施例具体实现,所述图片加载方法包括:
步骤S10、根据基于本地图片输入的图片加载指令,创建对应的图片解码任务。
本实施例在用户查看移动终端本地的图片时,通过去除重复的图片加载任务,从而使移动终端仅处理当前显示界面的图片加载任务,进行图片的加载,解决了图片加载的卡顿问题。
具体的,作为一种实施方式,首先,移动终端接收用户基于本地图片输入的图片加载指令。用户可以通过打开相册、滑动相册或者是通过应用软件查看相册等形式,输入图片加载指令,用于控制移动终端加载当前显示界面中的本地图片。图片加载指令可以控制同时加载一张或多张本地图片。
需要说明的是,图片加载指令对应的本地图片可存储于移动终端的内存,或者是外接SD(Secure Digital Memory Card,安全数字存储卡)卡、移动硬盘等存储设备中。
移动终端根据当前用户输入的图片加载指令创建对应的图片解码任务,用于解码移动终端中存储的本地图片,加载到当前的显示界面中。
同时,移动终端获取当前图片解码任务的任务属性,也可称为ImageRef(图片参数)。参照下述表1,图片解码任务的任务属性包括imageView(图片显示控件)、filePath(文件路径)、width(宽)、height(高)等。
属性名称 | 属性描述 |
imageView | 任务对应绑定的控件 |
filePath | 图片对应的路径 |
width | 图片的宽度 |
height | 图片的高度 |
表1
其中,imageView为当前图片解析任务对应绑定的控件,也即当前UI(UserInterface,用户界面)界面加载图片的控件;filePath为当前加载的本地图片的存储路径;width为本地图片显示在UI界面时的宽度;height为本地图片显示在UI界面时的高度。
由此,移动终端得到图片解码任务。
步骤S20、对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中。
在得到图片解码任务后,移动终端对预先配置的图片任务堆栈进行去重处理,然后将图片解码任务压入到图片任务堆栈。
具体的,作为一种实施方式,首先,移动终端预先创建并配置图片任务堆栈(ImageTask Stack),用于保护用户查看相册或滑动相册时,产生的图片加载指令所对应的图片解码任务。图片任务堆栈中保存了创建的图片解码任务。
移动终端去除堆栈中与当前图片解码任务相同的任务,避免重复执行相同的任务。
然后,移动终端将当前图片解码任务压入图片任务堆栈中,使当前图片解码任务位于图片任务堆栈的顶层,从而使移动终端能够优先处理最新创建的图片解码任务。
步骤S30、若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片。
在将图片解码任务压入到图片任务堆栈中后,若当前图片进程为空闲状态,则移动终端从图片任务堆栈中取出最顶层的图片解码任务并执行,加载移动终端的本地图片。
具体的,作为一种实施方式,图片进程(Image Thread)用于解码本地图片、加载到UI界面中。
移动终端获取图片进程当前的处理状态,若当前图片进程为空闲状态,未执行图片解码任务,则移动终端控制从图片任务堆栈中弹出最上层的图片解码任务,也即从图片任务堆栈中取出图片解码任务。
然后,移动终端控制图片进程执行图片解码任务,获取需要加载的本地图片,并根据任务属性将本地图片压缩或剪裁为当前UI界面显示图片的尺寸。
图片进程完成图片解码任务后,移动终端通知UI线程刷新当前界面,显示处理后的本地图片。
由此,实现了移动终端本地图片的加载。
在本实施例中,根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;对预先配置的图片任务堆栈进行去重处理,将图片解码任务压入到图片任务堆栈中;若图片进程为空闲状态,则取出图片解码任务并执行,加载本地图片。本实施例在收到用户基于本地图片输入的图片加载指令后,创建对应的图片解码任务;然后,对保存图片解码任务的图片任务堆栈进行去重处理,避免了用户重复输入相同的图片加载指令,导致移动终端重复执行同样的图片解码任务;然后,将当前图片解码任务压入到图片任务堆栈中,使得移动终端优先处理最新创建的图片解码任务,由于最新创建的图片解码任务为加载当前显示界面的图片,从而实现了优先执行当前显示界面的图片加载指令,已隐藏或划过的显示界面的图片加载指令则被延迟处理;当图片进程为空闲状态时,再取出图片解码任务并执行,保证了同一时间仅执行一个图片解码任务。由此,本实施例通过在本地图片加载过程中优先处理当前显示界面对应的图片加载指令,同一时间仅执行一个图片解码任务,使得本地图片加载流畅,用户滑动相册时给用户带来了图片加载流畅的体验,解决了本地图片加载卡顿的技术问题。
进一步的,参照图7,本发明图片加载方法第二实施例提供一种图片加载方法,可通过上述图片加载装置第二实施例具体实现。基于上述图6所示的实施例,所述步骤S30之后,还包括:
步骤S40、获取所述本地图片的缓存图片,创建所述缓存图片与所述本地图片的映射关系。
本实施例与上述本发明图片加载方法第一实施例的区别在于:本实施例通过获取已加载的本地图片的缓存图片,实现了当再次加载本地图片时,可直接加载缓存图片,减少了图片加载指令的处理过程,提高了图片加载的速度和流畅度。
在图片解码任务完成执行,加载本地图片后,移动终端获取当前加载的本地图片的缓存图片,并创建当前本地图片与对应的缓存图片的映射关系。
具体的,作为一种实施方式,图片解码任务完成执行后,移动终端获取当前显示界面加载显示的图片作为本地图片对应的缓存图片,将缓存图片存入移动终端内存的缓存区中,例如磁盘cache(高速缓冲存储器),便于后续快速的调取使用。
并且,移动终端创建缓存图片与本地图片的映射关系,从而可以根据移动终端本地的本地图片查找到对应的缓存图片。
对应的,所述步骤S10之前,还包括:
步骤S50、根据基于本地图片输入的图片加载指令,以及所述映射关系,查找所述本地图片对应的缓存图片。
在收到用户基于本地图片输入的图片加载指令后,移动终端首先根据图片加载指令获取当前需要加载的本地图片,可以使用存储路径及ID(编号)等识别信息标识本地图片。
然后,移动终端根据配置的映射关系和本地图片的标识信息,在缓存区中查找本地图片对应的缓存图片。
步骤S60、若查找到所述本地图片对应的缓存图片,则获取所述本地图片对应的缓存图片,进行图片加载。
若成功查找到本地图片对应的缓存图片,则移动终端获取本地图片对应的缓存图片,将得到的缓存图片进行解析,加载到当前的显示界面中。
由此,减少了图片的解析、加载时间,无需再次执行图片解码任务,减轻了移动终端的运行负担,提高了图片额加载速度。
作为另一种实施方式,若未查找到所述本地图片对应的缓存图片,则转入执行步骤S10。
若在移动终端的缓存区中未成功查找到本地图片对应的缓存图片,则移动终端根据图片加载指令创建对应的图片解码任务,执行图片解码任务加载本地图片。
本实施例在加载本地图片后,获取本地图片的缓存图片,创建缓存图片与本地图片的映射关系;收到图片加载指令时,根据基于本地图片输入的图片加载指令,以及配置的映射关系,查找本地图片对应的缓存图片;若查找到本地图片对应的缓存图片,则获取本地图片对应的缓存图片,进行图片加载;若未查找到本地图片对应的缓存图片,则根据图片记载指令创建对应的图片解码任务,执行图片解码任务加载本地图片。本实施例在加载本地图片后,获取本地图片的缓存图片,创建缓存图片与本地图片的映射关系;由此,在收到用户输入的图片加载指令时,根据图片记载指令获取当前需要加载的本地图片,并根据配置的映射关系查找本地图片对应的缓存图片;若成功查找到缓存图片,则可以直接加载缓存图片,提升了图片加载速度,避免重复处理同一本地图片的图片解码任务,减轻了移动终端的处理负担;若未查到当前本地图片的缓存图片,则创建图片解码任务,进行图片解码任务的处理。本实施例通过缓存已加载的图片,提高了移动终端的本地图片加载速度,提升了本地图片加载的流畅程度。
进一步的,参照图8,本发明图片加载方法第三实施例提供一种图片加载方法,可通过上述图片加载装置第三实施例具体实现。基于上述图6或图7所示的实施例(本实施例以图8为例),所述步骤S20包括:
步骤S21、获取所述图片解码任务绑定的界面控件。
本实施例与上述本发明图片加载方法第一实施例和第二实施例的区别在于:本实施例通过图片解码任务绑定的界面控件进行图片任务堆栈的去重处理,避免了执行同一界面控件复用而产生的大量过期任务,减轻了处理负担,加快了图片解码任务的执行速度。
在获取图片解码任务后,首先,移动终端获取图片解码任务绑定的界面控件。
具体的,作为一种实施方式,移动终端根据图片解码任务的任务属性,获取图片解码任务绑定的界面控件。
步骤S22、根据所述界面控件,对所述图片任务堆栈中的任务进行去重处理。
当用户在查看相册时,滑动显示界面,复用加载本地图片的界面控件,导致同一界面控件产生较多的图片解码任务。
当用户滑过上一显示界面,停留在当前显示界面时,上一显示界面的图片解码任务还保存在图片任务堆栈中,此时,由于上一显示界面的图片解码任务与当前显示界面的图片解码任务绑定了同一界面控件,则可以根据界面控件删除图片任务堆栈中上一显示界面的图片解码任务,进行去重处理。使移动终端无需再处理上一显示界面的图片解码任务,不再加载上一显示界面的本地图片,仅处理当前显示界面的图片解码任务,加载当前显示界面的本地图片。
具体的,作为一种实施方式,移动终端根据图片任务堆栈中已存储的各图片解码任务的任务属性,筛选出与当前图片解码任务所绑定的界面控件相同的任务。
然后,删除图片任务堆栈中,与当前图片解码任务所绑定的界面控件相同的任务,也即删除图片任务堆栈中当前界面控件绑定的所有任务。
步骤S23、将所述图片解码任务压入所述图片任务堆栈。
在对图片任务堆栈中的任务进行去重处理后,移动终端将当前图片解码任务压入图片任务堆栈中,则当前图片解码任务位于图片任务堆栈的顶层,若图片进程为空闲,则优先处理位于顶层的当前图片解码任务,提高了图片加载的速度。
在本实施例中,获取图片解码任务绑定的界面控件;根据界面控件,对图片任务堆栈中的任务进行去重处理;将图片解码任务压入图片任务堆栈。本实施例通过获取图片解码任务绑定的界面控件,根据当前图片解码任务绑定的界面控件对图片任务堆栈进行去重,删除了图片任务堆栈中,与当前图片解码任务绑定的界面控件相同的任务,避免了由于用户滑动显示界面时同一界面控件复用,而导致产生的多个图片解码任务被重复执行,影响图片的加载速度,极大地提升了移动终端的本地图片加载速度。
进一步的,参照图9,本发明图片加载方法第四实施例提供一种图片加载方法,可通过上述图片加载装置第四实施例具体实现。基于上述图8所示的实施例,所述步骤S30之前,还包括:
步骤S70、根据所述图片进程的状态标志,获取所述图片进程的运行状态;若所述图片进程为空闲状态,则转入执行步骤S30。
本实施例与上述本发明图片加载方法第三实施例的区别在于:本实施例通过查看图片进程的状态标志,实时准确获取图片进程的当前状态,保证同一时间仅执行一个图片解码任务,避免多个图片解码任务同时执行降低图片的加载速度。
在将图片解码任务压入图片任务堆栈中后,移动终端根据图片进程的状态标志(Flag),获取当前图片进程的运行状态。
例如,若图片进程的Flag标记为False(否),则当前图片进程为忙碌状态;若图片进程的Flag标记为True,则当前图片进程为空闲状态。
由此,移动终端获取图片进程的当前运行状态。
若图片进程的当前运行状态为空闲状态,则移动终端执行图片解码任务,加载本地图片。
在本实施例中,根据图片进程的状态标志,获取图片进程的运行状态;若图片运行状态为空闲状态,则执行图片解码任务,加载本地图片。本实施例通过图片进程的状态标记,实现了准确获取图片进程的运行状态,保证了同一时间仅处理一个图片解码任务,提高了图片解码的处理速度,也即提高了图片加载速度。
进一步的,参照图10,本发明图片加载方法第五实施例提供一种图片加载方法,可通过上述图片加载装置第五实施例具体实现。基于上述图9所示的实施例,所述步骤S30包括:
步骤S31、若所述图片进程为空闲状态,则从所述图片任务堆栈中取出所述图片解码任务,更新所述状态标志为忙碌状态。
本实施例与上述本发明图片加载方法第四实施例的区别在于:本实施例通过在执行图片解码任务的过程中即时更新图片进程的状态标记,使得图片进程的状态标记为最新且准确的,从而更加准确的获取图片进程的运行状态。
具体的,若当前图片进程为空闲状态,则移动终端从图片任务堆栈中取出当前图片解码任务,将图片解码任务增加到请求队列(Request Queue)中。
同时,移动终端将图片进程的状态标志修改为False,也即更新状态标志为忙碌状态。
步骤S32、执行所述图片解码任务,加载所述本地图片。
移动终端控制图片进程执行请求队列中的图片解码任务,根据任务属性查找本地图片进行解码,并根据当前UI界面显示图片的尺寸压缩或剪裁本地图片,得到本地图片的显示小图,用于显示在UI界面中,还可以用作本地图片对应的缓存图片。
然后,移动终端刷新UI界面,将本地图片的显示小图显示在UI界面中。
步骤S33、更新所述状态标志为空闲状态。
移动终端在执行完成当前的图片解码任务后,将图片进程的状态标志修改为True,也即更新状态标志为空闲状态。
然后,移动终端取出图片任务堆栈中当前最顶层的图片解码任务,并控制图片进程执行。
在本实施例中,若图片进程为空闲状态,则从图片任务堆栈中取出图片解码任务,更新状态标志为忙碌状态;执行图片解码任务,加载本地图片;更新状态标志为空闲状态。本实施例通过在执行图片解码任务的过程中即时更新图片进程的状态标志,明确图片进程的运行状态,保证同一时间仅执行一个图片解码任务,提高了本地图片的加载速度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种图片加载装置,其特征在于,所述图片加载装置包括:
指令模块,用于根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;
去重模块,用于对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中,使所述图片解码任务位于所述图片任务堆栈的顶层;
状态模块,用于根据图片进程的状态标志,获取所述图片进程的运行状态;
加载模块,用于若所述图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片;
其中,所述去重模块还用于,
获取所述图片解码任务绑定的界面控件;根据所述界面控件,对所述图片任务堆栈中的任务进行去重处理;将所述图片解码任务压入所述图片任务堆栈,以优先处理位于顶层的当前图片解码任务。
2.如权利要求1所述的图片加载装置,其特征在于,所述图片加载装置还包括:
缓存模块,用于获取所述本地图片的缓存图片,创建所述缓存图片与所述本地图片的映射关系;
查找模块,用于根据基于本地图片输入的图片加载指令,以及所述映射关系,查找所述本地图片对应的缓存图片;
获取模块,用于若查找到所述本地图片对应的缓存图片,则获取所述本地图片对应的缓存图片,进行图片加载;
所述指令模块,还用于若未查找到所述本地图片对应的缓存图片,则根据所述图片加载指令,创建对应的图片解码任务。
3.如权利要求1所述的图片加载装置,其特征在于,所述加载模块还用于,
若所述图片进程为空闲状态,则从所述图片任务堆栈中取出所述图片解码任务,更新所述状态标志为忙碌状态;执行所述图片解码任务,加载所述本地图片;更新所述状态标志为空闲状态。
4.一种图片加载方法,其特征在于,所述图片加载方法包括以下步骤:
根据基于本地图片输入的图片加载指令,创建对应的图片解码任务;
对预先配置的图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中,使所述图片解码任务位于所述图片任务堆栈的顶层;
根据图片进程的状态标志,获取所述图片进程的运行状态;
若所述图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片;
其中,所述对图片任务堆栈进行去重处理,将所述图片解码任务压入到所述图片任务堆栈中的步骤包括:
获取所述图片解码任务绑定的界面控件;
根据所述界面控件,对所述图片任务堆栈中的任务进行去重处理;
将所述图片解码任务压入所述图片任务堆栈,以优先处理位于顶层的当前图片解码任务。
5.如权利要求4所述的图片加载方法,其特征在于,所述若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片的步骤之后,还包括:
获取所述本地图片的缓存图片,创建所述缓存图片与所述本地图片的映射关系;
所述根据基于本地图片输入的图片加载指令,创建对应的图片解码任务的步骤之前,还包括:
根据基于本地图片输入的图片加载指令,以及所述映射关系,查找所述本地图片对应的缓存图片;
若查找到所述本地图片对应的缓存图片,则获取所述本地图片对应的缓存图片,进行图片加载;
若未查找到所述本地图片对应的缓存图片,则转入执行步骤:根据基于本地图片输入的图片加载指令,创建对应的图片解码任务。
6.如权利要求4所述的图片加载方法,其特征在于,所述若图片进程为空闲状态,则取出所述图片解码任务并执行,加载所述本地图片的步骤包括:
若所述图片进程为空闲状态,则从所述图片任务堆栈中取出所述图片解码任务,更新所述状态标志为忙碌状态;
执行所述图片解码任务,加载所述本地图片;
更新所述状态标志为空闲状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338502.4A CN106020780B (zh) | 2016-05-19 | 2016-05-19 | 图片加载装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610338502.4A CN106020780B (zh) | 2016-05-19 | 2016-05-19 | 图片加载装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020780A CN106020780A (zh) | 2016-10-12 |
CN106020780B true CN106020780B (zh) | 2019-10-29 |
Family
ID=57096274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610338502.4A Active CN106020780B (zh) | 2016-05-19 | 2016-05-19 | 图片加载装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020780B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175053B (zh) * | 2019-04-24 | 2023-10-27 | 创新先进技术有限公司 | 图片加载方法及装置 |
CN111857481A (zh) | 2020-07-24 | 2020-10-30 | 京东方科技集团股份有限公司 | 图像显示方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541605A (zh) * | 2011-12-30 | 2012-07-04 | Tcl集团股份有限公司 | 基于Android系统的图片加载方法和装置 |
CN103678526A (zh) * | 2013-11-29 | 2014-03-26 | 贝壳网际(北京)安全技术有限公司 | 浏览器解码图片的方法、装置和客户端 |
CN104657380A (zh) * | 2013-11-20 | 2015-05-27 | 青岛海信移动通信技术股份有限公司 | 一种图片加载方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010045964A1 (en) * | 2000-04-25 | 2001-11-29 | Microsoft Corporation | Method and system for transferring images from an imaging source device toa destination |
-
2016
- 2016-05-19 CN CN201610338502.4A patent/CN106020780B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541605A (zh) * | 2011-12-30 | 2012-07-04 | Tcl集团股份有限公司 | 基于Android系统的图片加载方法和装置 |
CN104657380A (zh) * | 2013-11-20 | 2015-05-27 | 青岛海信移动通信技术股份有限公司 | 一种图片加载方法和装置 |
CN103678526A (zh) * | 2013-11-29 | 2014-03-26 | 贝壳网际(北京)安全技术有限公司 | 浏览器解码图片的方法、装置和客户端 |
Also Published As
Publication number | Publication date |
---|---|
CN106020780A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201756B (zh) | 日志获取装置、移动终端及方法 | |
CN106095568B (zh) | 内存管理装置、移动终端及方法 | |
CN105611631B (zh) | 手机射频资源分配方法及装置 | |
CN105893498B (zh) | 一种实现截屏的方法和装置、查找图片的方法和装置 | |
CN105282245B (zh) | 跨服务器消息推送系统及方法 | |
CN105357593B (zh) | 一种上传视频的方法、装置和系统 | |
CN105306457B (zh) | 数据缓存装置及方法 | |
CN105426442B (zh) | 一种基于分布式数据库消息数据管理方法及系统 | |
CN105915623A (zh) | 应用安装包处理装置及方法 | |
CN105354057B (zh) | 信息处理方法及服务器 | |
US10095666B2 (en) | Method and terminal for adding quick link | |
CN105681561B (zh) | 广告拦截装置和方法 | |
CN106599875A (zh) | 指纹识别装置及方法 | |
CN105808659B (zh) | 移动终端及其网页截图方法 | |
CN106648369A (zh) | 应用程序的切换装置及方法 | |
CN106412104A (zh) | 应用消息推送装置及方法 | |
CN105843478B (zh) | 快捷开关的图标显示控制方法及装置 | |
CN106559563A (zh) | 图像数据处理方法及装置 | |
CN104866095B (zh) | 移动终端及其桌面管理方法和装置 | |
CN106528576A (zh) | 页面搜索方法、终端及系统 | |
CN105049582B (zh) | 一种通话录音的保存装置、方法和显示方法 | |
CN105681547A (zh) | 中间件实例管理装置和方法 | |
CN105430042B (zh) | 一种实现数据传输的方法、服务端和移动终端 | |
CN106020780B (zh) | 图片加载装置和方法 | |
CN105787030B (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 |