CN104252350B - 一种加载列表框中的图片的方法和装置 - Google Patents
一种加载列表框中的图片的方法和装置 Download PDFInfo
- Publication number
- CN104252350B CN104252350B CN201310269142.3A CN201310269142A CN104252350B CN 104252350 B CN104252350 B CN 104252350B CN 201310269142 A CN201310269142 A CN 201310269142A CN 104252350 B CN104252350 B CN 104252350B
- Authority
- CN
- China
- Prior art keywords
- picture
- rolling window
- rolling
- list box
- visible area
- 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
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种加载列表框中的图片的方法和装置。该方法包括:在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测;当监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置;根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;只加载所确定的图片到内存中,并在滚动窗口中显示。本发明提供的技术方案能够解决现有的在列表框中加载图片时存在的系统内存资源消耗过大的问题。
Description
技术领域
本发明涉及智能移动终端的图片显示技术领域,特别是涉及一种加载列表框中的图片的方法和装置。
背景技术
现有的智能系统(如Windows Phone)下的列表框(ListBox)的滚动窗口(ScrollViewer)的可视区域中显示图片时,需要将ListBox中图片全部加载。但是并不是所加载的全部图片用户都能浏览到,同步加载用户没有浏览的图片导致系统资源消耗过大,过大的占用智能终端的系统内存。
综上所述,现有的智能终端中在列表框中加载图片时存在的系统内存资源消耗过大的问题。
发明内容
本发明提供的一种加载列表框中的图片的方法和装置,以解决现有的智能终端中在列表框中加载图片时存在的系统内存资源消耗过大的问题。
为达到所述目的,本发明的技术方案是这样实现的:
本发明公开了一种加载列表框中的图片的方法,该方法包括:
在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测;
当监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置;
根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;
只加载所确定的图片到内存中,并在滚动窗口中显示。
在上述方法进一步包括:
从内存中删除已不在滚动窗口的可视区域内的图片。
上述方法进一步包括:在列表框绑定数据源时,在内存中初始化图片数据源。
在上述方法中,所述对滚动窗口的状态进行监测包括:
增加列表框的滚动窗口状态改变事件;
通过监测该滚动窗口状态改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
在上述方法中,所述确定与滚动窗口的可视区域相对应的图片包括:
令对应区域为:覆盖滚动窗口的可视区域,并超出滚动窗口的可视区域第一预设阀值的区域;
该对应区域内图片即为与滚动窗口的可视区域相对应的图片。
在上述方法中,所述确定与滚动窗口的可视区域相对应的图片包括:
取Y轴坐标值小于滚动窗口的可视区域的高度值与第二预设阀值的和,并且Y轴坐标值大于0的图片。
本发明还公开了一种加载列表框中的图片的装置,该装置包括:
监测单元,用于在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测;
图片确定单元,用于在所述监测单元监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置,并根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;
加载显示单元,用于只加载所述图片确定单元所确定的图片到内存中,并在滚动窗口中显示。
在上述装置中,该装置进一步包括:
回收单元,用于从内存中删除已不在滚动窗口的可视区域内的图片。
在上述装置中,所述监测单元,用于增加列表框的滚动窗口状态改变事件,通过监测该滚动窗口状态改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
在上述装置中,所述图片确定单元,用于设置对应区域为覆盖滚动窗口的可视区域并超出滚动窗口的可视区域第一预设阀值的区域,取该对应区域内的图片作为与滚动窗口的可视区域相对应的图片;
或者,
所述图片确定单元,用于取Y轴坐标值小于滚动窗口的可视区域的高度与第二阀值的和,并且Y轴坐标值大于0的图片。
综上所述,在本发明提供的技术方案中,在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测;当监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置;根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;只加载所确定的图片到内存中,并在滚动窗口中显示。本发明提供的技术方案在列表框中加载数据源时,只加载可视区域内的图片,而不会加载用户可能不会浏览的图片,因此能够解决现有技术中的在列表框中加载图片时,需要对图片全部加载导致的系统内存资源消耗过大的问题。
附图说明
图1是本发明中一种实施例中的加载列表框中的图片的方法的流程图;
图2是本发明中一种具体实施例中的加载列表框中的图片的方法的流程图;
图3是本发明中一种实施例中的加载列表框中的图片的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明中一种实施例中的加载列表框中的图片的方法的流程图。如图1所示,该方法包括:
步骤101,在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测。
在本步骤中,绑定的数据源为需要显示在列表框的滚动窗口中的除图片以外的文字等内容。
在本发明的一种实施例中,步骤101进一步包括:在列表框绑定数据源时,进一步在内存中初始化图片数据源。
由于在列表框的滚动窗口停止滚动时加载图片,故在本发明中还需要对滚动窗口的状态进行实时监测,以便在列表框的滚动窗口停止滚时,可以及时的加载图片,在本发明的一个实施例中,对滚动窗口的状态进行监测具体包括步骤1011和步骤1012:
步骤1011,增加列表框的滚动窗口状态改变事件;
步骤1012,通过监测该滚动窗口状态改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
在上述步骤1011和1012中,在列表框的滚动窗口中增加滚动窗口状态改变事件,当列表框的滚动窗口的状态发生改变时,例如从正在滚动状态切换到停止滚动状态,或者从停止滚动状态切换到滚动状态时,该滚动窗口改变事件中的状态名称会发生相应的变化。故可以通过监测该滚动窗口状态改变事件的状态名称的改变,实时的获取到该列表框的滚动窗口的当前状态,是正在滚动状态,还是停止滚动状态。
步骤102,当监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置。
在本发明的一种实施例中,在步骤102中,当列表框的滚动窗口停止滚动时,通过获取列表框中的各个项中的图片相对于滚动窗口的位置的坐标的方式,获取列表框中的各个项中的图片相对于滚动窗口的位置。
步骤103,根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片。
在本发明的一种实施例中,令对应区域为:覆盖滚动窗口的可视区域,并超出滚动窗口的可视区域第一预设阀值的区域;该对应区域内的图片即为与滚动窗口的可视区域相对应的图片。
在本发明的一个具体实施例中,确定与滚动窗口的可视区域相对应的图片具体可以为:在绑定的数据源中,取Y轴坐标值小于滚动窗口的可视区域的高度值与第二预设阀值的和,并且Y轴坐标值大于0的图片。其中,Y轴是指列表框中的每个项中图片相对于滚动窗口的坐标,如果有图片在滚动窗口的可视区域之上时,Y轴坐标值为负数。
例如:滚动窗口的高度值为800时,如果图片的Y轴坐标值为-100,则该图片位于滚动视图的可视区域上;如果图片的Y轴坐标值为500,则该图片位于滚动视图的可视区域内;如果图片的Y轴坐标值为1000,则该图片位于滚动视图的可视区域之下。
在上述的两个实施例中,第一预设阀值和第二预设阀值分别可以根据实际情况而定。第一预设阀值和第二预设阀值可以是相同的值,也可以是不同的值。
步骤104,只加载所确定的图片到内存中,并在滚动窗口中显示。
在本发明的较佳实施例中,为了节省系统内存,在步骤104之后,还包括:从内存中删除已不在滚动窗口的可视区域内的图片。这里,将之前已经加载过的并且当前不在滚动窗口的可视区域内的图片(即已经滑出滚动窗口的图片)删除以释放内存,达到对智能终端内存资源有效利用。
图2是本发明中一种具体实施例中的加载列表框中的图片方法的流程图。为了叙述方便,在本实施例中具体用windows phone为操作系统的智能终端为例进行详细说明,实际中并不局限于windows phone操作系统以及该操作系统所开放的方法类。如图2所示,该方法包括:
步骤201,列表框绑定数据源。
步骤202,在内存中初始化图片数据源。
在本步骤中,在列表框中绑定数据源之后,在智能终端的内存中对所绑定的图片数据源进行初始化,指定图片数据源为NULL,具体为:在ListBoxItem类(继承BaseWithImageContent)中构建IU元素(BuildUI)方法中初始化非虚拟化中的图片。
步骤203,增加列表框的滚动窗口状态改变事件。
步骤204,通过监测滚动窗口改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
在步骤203和步骤204中,通过增加继承了内容控件的图像内容基础类,然后在加载事件中查找滚动窗口,获取滚动窗口中的滚动状态对象;在滚动状态改变事件中,该滚动状态对象的状态名称会发生变化;当监测到滚动状态对象的状态名称为停止滚动时,判定当前滚动窗口的状态为停止滚动状态。
在本发明的一种实施例中,步骤203和步骤204可以具体为:
将滚动窗口状态改变事件封装在一个继承内容控件ContentControl的泛型抽象类BaseWithImageContent中;
由该泛型抽象类在列表框的Loaded事件中查找列表框的滚动窗口ScrollViewer控件,获取可视对象中位于集合索引0位置的名称为滚动状态的子可视对象,在该子可视对象的当前状态(CurrentStateChanged)过渡到不同状态事件中时,判断最新状态名称(NewState.Name)的取值为NotScroling,即为停止滚动状态。
步骤205,根据列表框中的各个项中的图片相对于滚动窗口的位置,来确定与滚动窗口的可视区域相对应的图片。
在步骤205中,设置的对应区域为:覆盖滚动窗口的可视区域,并超出滚动窗口的可视区域预设阀值的区域;该对应区域内图片即为与滚动窗口的可视区域相对应的图片。
具体为:通过获取列表框中的各个项中的图片相对与滚动窗口的位置坐标,获取到的坐标计算各个项中的图片相对与滚动窗口的相对位置。
其中,获取图片相对ScrollViewer的位置的坐标的操作,具体可以通过如下操作实现:
Point point=image.TransformToVisual(this.scrollViewer).Transform(newPoint(0.0,0.0))。
在绑定的图片数据源中取Y轴坐标值小于滚动窗口的可视区域的高度值与第二预设阀值的和,并且Y轴坐标值大于0的图片。将取得的图片作为与滚动窗口的可视区域相对应的图片。由于Y轴坐标是指列表框中的每个项中图片相对于滚动窗口的坐标,如果有图片在滚动窗口的可视区域之上时,这个Y轴坐标值为负数,故需要设置Y轴的坐标值大于0。
步骤206,只加载所确定的图片到内存中,并在滚动窗口中显示。
在步骤206中,根据确定的与滚动窗口的可视区域相对应的图片,在滚动窗口中显示该确定的图片。
步骤207,从内存中删除已不在滚动窗口的可视区域内的图片。
为了节约智能终端的内存资源,将不在滚动窗口的可视区域内的图片在内存中删除。在本步骤中,为了更好的节约系统内存以及下载的图片时的流量。根据在步骤206中确定的与滚动窗口的可视区域相对应的图片,在内存中只加载该对应的图片,当滚动窗口滚动时,将已经加载过的并且不在滚动窗口的可视区域内的图片删除以释放内存,达到对智能终端内存资源有效利用。其中,删除已不再滚动窗口的可视区域的图片的操作具体可以通过如下操作实现this.image=Visibility.Collapsed。
基于上述实施例给出本发明的加载列表框中的图片的装置结构。
图3是本发明中一种实施例中的加载列表框中的图片的装置结构示意图。如图3所示,该装置包括:
监测单元301,用于在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测;
图片确定单元302,用于在监测单元监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置,并根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;
加载显示单元303,用于只加载图片确定单元所确定的图片到内存中,并在滚动窗口中显示。
在本发明的一种实施例中,上述装置还包括:回收单元304,用于从内存中删除已不在滚动窗口的可视区域内的图片。
在本发明的一种实施例中,监测单元301,用于增加列表框的滚动窗口状态改变事件,通过监测该滚动窗口状态改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
在本发明的一种实施例中,图片确定单元302,用于设置对应区域为覆盖滚动窗口的可视区域并超出滚动窗口的可视区域第一预设阀值的区域,取该对应区域内的图片作为与滚动窗口的可视区域相对应的图片。
在本发明的一种实施例中,图片确定单元302,用于取Y轴坐标值小于滚动窗口的可视区域的高度与第二阀值的和,并且Y轴坐标值大于0的图片。
综上所述,在本发明提供的技术方案中,在列表框绑定数据源时,对列表框的滚动窗口的状态进行监测;当监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置;根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;只加载所确定的图片到内存中,并在滚动窗口中显示。本发明提供的技术方案在列表框中加载数据源时,只加载显示区域中的图片,因此能够解决现有技术中的在列表框中加载图片时,需要对图片全部加载导致的系统内存资源消耗过大的问题。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (4)
1.一种加载列表框中的图片的方法,其特征在于,该方法包括:
在列表框绑定数据源时,在内存中对所绑定的图片数据源进行初始化,对列表框的滚动窗口的状态进行实时监测;
当监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置;
根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;
只加载所确定的图片到内存中,并在滚动窗口中显示;
所述确定与滚动窗口的可视区域相对应的图片包括:
令对应区域为:覆盖滚动窗口的可视区域,并超出滚动窗口的可视区域第一预设阀值的区域;
该对应区域内图片即为与滚动窗口的可视区域相对应的图片;
所述确定与滚动窗口的可视区域相对应的图片包括:
取Y轴坐标值小于滚动窗口的可视区域的高度值与第二预设阀值的和,并且Y轴坐标值大于0的图片;
所述对滚动窗口的状态进行监测包括:
增加列表框的滚动窗口状态改变事件;
通过监测该滚动窗口状态改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
2.如权利要求1所述的方法,其特征在于,该方法进一步包括:
从内存中删除已不在滚动窗口的可视区域内的图片。
3.一种加载列表框中的图片的装置,其特征在于,该装置包括:
监测单元,用于在列表框绑定数据源时,在内存中对所绑定的图片数据源进行初始化,对列表框的滚动窗口的状态进行实时监测;
图片确定单元,用于在所述监测单元监测到滚动窗口的停止滚动状态时,获取列表框中的各个项中的图片相对于滚动窗口的位置,并根据列表框中的各个项中的图片相对于滚动窗口的位置,确定与滚动窗口的可视区域相对应的图片;
加载显示单元,用于只加载所述图片确定单元所确定的图片到内存中,并在滚动窗口中显示;
所述图片确定单元,用于设置对应区域为覆盖滚动窗口的可视区域并超出滚动窗口的可视区域第一预设阀值的区域,取该对应区域内的图片作为与滚动窗口的可视区域相对应的图片;
或者,
所述图片确定单元,用于取Y轴坐标值小于滚动窗口的可视区域的高度与第二阀值的和,并且Y轴坐标值大于0的图片;
所述对滚动窗口的状态进行监测包括:
增加列表框的滚动窗口状态改变事件;
通过监测该滚动窗口状态改变事件的状态名称的改变,来获知滚动窗口的状态的改变。
4.如权利要求3所述的装置,其特征在于,该装置进一步包括:
回收单元,用于从内存中删除已不在滚动窗口的可视区域内的图片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269142.3A CN104252350B (zh) | 2013-06-28 | 2013-06-28 | 一种加载列表框中的图片的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269142.3A CN104252350B (zh) | 2013-06-28 | 2013-06-28 | 一种加载列表框中的图片的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104252350A CN104252350A (zh) | 2014-12-31 |
CN104252350B true CN104252350B (zh) | 2018-05-11 |
Family
ID=52187296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310269142.3A Active CN104252350B (zh) | 2013-06-28 | 2013-06-28 | 一种加载列表框中的图片的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104252350B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156153B (zh) * | 2015-04-14 | 2022-05-27 | 腾讯科技(深圳)有限公司 | 一种加载图片的方法和装置 |
CN105045592A (zh) * | 2015-07-24 | 2015-11-11 | 北京金山安全软件有限公司 | 一种图片显示方法以及装置 |
CN107168755A (zh) * | 2017-03-30 | 2017-09-15 | 武汉斗鱼网络科技有限公司 | 一种应用软件内存占用优化方法及系统 |
CN107103080A (zh) * | 2017-04-26 | 2017-08-29 | 福建中金在线信息科技有限公司 | 一种移动终端页面控件加载方法及装置 |
CN109684573B (zh) * | 2017-10-18 | 2021-10-15 | 北京京东尚科信息技术有限公司 | 目标图片显示方法及装置、存储介质、电子设备 |
CN108595262B (zh) * | 2018-03-29 | 2021-06-22 | 北京奇艺世纪科技有限公司 | 数据处理方法及装置 |
CN110568978A (zh) * | 2019-07-30 | 2019-12-13 | 惠州市德赛西威智能交通技术研究院有限公司 | 一种列表显示数据的动态加载方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794567A (zh) * | 2010-02-10 | 2010-08-04 | 中兴通讯股份有限公司 | 图片加载的方法及终端 |
CN102541538A (zh) * | 2011-12-06 | 2012-07-04 | Tcl集团股份有限公司 | 一种基于移动终端的图片显示方法及装置 |
CN102760133A (zh) * | 2011-04-28 | 2012-10-31 | 腾讯科技(深圳)有限公司 | 网页加载方法、系统、浏览器、终端及服务器 |
CN102819386A (zh) * | 2012-06-29 | 2012-12-12 | 北京奇虎科技有限公司 | 一种显示网页中图片的方法和装置 |
-
2013
- 2013-06-28 CN CN201310269142.3A patent/CN104252350B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794567A (zh) * | 2010-02-10 | 2010-08-04 | 中兴通讯股份有限公司 | 图片加载的方法及终端 |
CN102760133A (zh) * | 2011-04-28 | 2012-10-31 | 腾讯科技(深圳)有限公司 | 网页加载方法、系统、浏览器、终端及服务器 |
CN102541538A (zh) * | 2011-12-06 | 2012-07-04 | Tcl集团股份有限公司 | 一种基于移动终端的图片显示方法及装置 |
CN102819386A (zh) * | 2012-06-29 | 2012-12-12 | 北京奇虎科技有限公司 | 一种显示网页中图片的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104252350A (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104252350B (zh) | 一种加载列表框中的图片的方法和装置 | |
US20220353228A1 (en) | Dynamic configuration of application component tiles | |
CN108512695B (zh) | 监控应用卡顿的方法及装置 | |
US9999021B2 (en) | Electronic device and method of providing notification by electronic device | |
KR102353766B1 (ko) | 디스플레이를 제어하는 장치 및 방법 | |
CN103034397B (zh) | 一种基于最近任务的动态解锁方法、装置及移动终端 | |
US8549433B2 (en) | Method and apparatus for providing a user interface in association with a recommender service | |
CN103105995B (zh) | 显示方法和电子设备 | |
CN107203960B (zh) | 图像渲染方法及装置 | |
CN105988860B (zh) | 执行应用程序的方法及移动装置 | |
US11861382B2 (en) | Application starting method and apparatus, and electronic device | |
WO2019062912A1 (zh) | 显示模式切换方法及装置、终端、存储介质 | |
JP2017515209A (ja) | 適応型ユーザインターフェイスペインマネージャ | |
CN104063125B (zh) | 一种桌面图标管理方法和装置 | |
CN107341015B (zh) | 终端间数据同步方法、装置、终端及存储介质 | |
US20170168653A1 (en) | Context-driven, proactive adaptation of user interfaces with rules | |
AU2017435234B2 (en) | Image processing method and device | |
CN107315531A (zh) | 智能终端应用的控制方法及系统 | |
CN103970422A (zh) | 一种移动终端屏幕透明度自动改变的方法及移动终端 | |
US20190102058A1 (en) | Media resource loading method and terminal | |
CN103067596B (zh) | 一种快速显示预设事件的移动终端及其控制方法 | |
CN103064782A (zh) | 一种获取控件的方法及装置 | |
CN109542304A (zh) | 显示内容的加载方法、装置、设备及存储介质 | |
CN105512124A (zh) | 在网页中实现文本编辑器悬浮的方法和装置 | |
CN116088716B (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 | ||
CP02 | Change in the address of a patent holder |
Address after: Room 810, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080 Patentee after: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building 6 storey block A room 602 Patentee before: BEIJING D-MEDIA COMMUNICATION TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |