CN103345371A - 一种通过显示屏平滑显示大数据量的方法 - Google Patents
一种通过显示屏平滑显示大数据量的方法 Download PDFInfo
- Publication number
- CN103345371A CN103345371A CN2013102160388A CN201310216038A CN103345371A CN 103345371 A CN103345371 A CN 103345371A CN 2013102160388 A CN2013102160388 A CN 2013102160388A CN 201310216038 A CN201310216038 A CN 201310216038A CN 103345371 A CN103345371 A CN 103345371A
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- thread
- display screen
- queue
- 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.)
- Granted
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及人机相互的数据显示领域,为一种通过显示屏平滑显示大数据量的方法,在显示屏窗口上进行数据的显示,包括显示线程、控制线程、打印线程、帧轮以及帧队列;其中帧轮由N个图像帧组成,由控制线程控制自由转动,控制线程接收滑动窗口的用户事件,根据事件内容修改游标的值,驱动帧轮旋转,打印线程检查帧队列是否为空,若空则不处理,若不空,从帧队列中取出一帧,到数据库中检索对应的数据,然后将检索到的数据描画在所取帧的位图上,显示线程根据游标计算显示窗口在帧轮中的映射位置,根据映射位置将帧轮中图像帧的内容描画到屏幕的窗口中。资源占用小,加载速度快,实现了内存使用量与实际数据量的无关性。
Description
技术领域
本发明涉及人机相互的数据显示领域,具体地来说为一种通过显示屏平滑显示大数据量的方法。该方法通过多帧多线程预读取的技术实现能够流畅平滑显示巨大数据量的视图窗口。
背景技术
在软件应用的界面开发过程中,经常会遇到大数据量的显示问题,比如数据库中存放着几十万甚至几百万的数据,当用户需要通过界面全部展现这些数据时,目前普遍采取的方法以下几种:
将数据先全部预读到内存,然后加载到显示屏幕上显示,用户通过滑动屏幕或者滚动条来查看数据。这种方法的好处是实现简单,数据加载结束后用户可以直接滑动屏幕查看数据,但是由于数据量大,因此加载速度十分缓慢,有时让人难以接受,而且十分耗费内存资源。
通过分页方法将数据分为若干页,然后每次加载一页,用户可以通过“上一页”,“下一页”按钮或跳转到第n页的方式选择想要查看的数据。这种方法虽然加载速度快,不耗费内存,但用户更希望通过手指在触摸屏上直接滑动来阅读数据,使用翻页方式必然会影响到应用程序的用户体验。
通过增量加载方法显示数据,先显示若干条数据,用户滑动屏幕或者滚动条来查看数据,当滚动到视窗的尾部时再加载若干条数据,以此类推。这种方法目前在很多软件中使用,但是当数据量过大时,用户如果想查看最后一条数据就需要频繁的将视窗滚动到尾部,十分不方便,而且随着数据加载越来越多,内存消耗也越来越多。
实时显示的方法,这种技术首先计算需要显示多少数据,然后再读取这些数据,它的优点是只在内存中保持极少的数据,却可以显示多达DWORD个数据项。不过由于是在UI的消息循环中读取数据内容,当数据项查询速度稍慢时(例如复杂的SQL文,通过网络的远程查询,存储卡读取速度等因素)UI的响应速度会变慢,屏幕滚动时会出现卡屏,不流畅的现象。这对于追求流畅滚动效果的触屏应用来说是不可取的。
发明内容
针对现有技术中存在的上述不足之处,本发明要解决的问题在于提供一种通过显示屏平滑显示大数据量的方法,解决显示数据内存消耗大,加载数据慢等问题。
本发明采用如下的技术方案:
一种通过显示屏平滑显示大数据量的方法,在显示屏窗口上进行数据的显示,包括三个线程:显示、控制和打印线程,数据结构包括:帧轮,帧队列和游标。其中帧轮由N个图像帧组成,每个图像帧包含:一个位图,需要描画的数据索引列表,实际描画的数据索引列表;
包括以下步骤:
1)显示窗口被创建时,需要进行初始化处理,包括以下内容:从数据库中检索需要显示的数据个数,根据数据个数计算游标的移动范围;将帧轮中每一帧的位图设置为无数据时的显示背景;将帧轮中每一帧的“需要描画的数据索引列表”清空;将帧轮中每一帧的“实际描画的数据索引列表”清空。将游标设置为0。
2)控制线程接收来自窗口的用户事件,根据事件内容修改游标值,驱动帧轮旋转,将需要重新描画的帧添加到帧队列中;
3)打印线程根据帧队列中每一帧的“需要描画的数据索引列表”从数据库中检索数据,并将检索到的数据描画到帧中的位图上;
4)显示线程根据游标计算显示屏窗口在帧轮中的映射位置,根据映射位置将帧轮中图像帧的内容描画到窗口中。
步骤2中,控制线程根据用户事件内容修改游标值,根据修改后的游标值计算帧轮中每一帧的“需要描画的数据索引列表”,然后判断“需要描画的数据索引列表”是否与此帧中“实际描画的数据索引列表”一致,若不一致那么将此帧添加到帧队列中,将帧添加到帧队列之前先将帧中的位图初始化为无数据时的显示背景。
进一步地,根据用户事件的内容决定游标值的加减,根据用户事件的内容计算游标值改变的加速度,根据此加速度控制游标值的变化速度。游标值增加,帧轮正向转动,游标值减小,帧轮逆向转动。
步骤3中,打印线程从帧队列中取出一帧,跟据帧中的“需要描画的数据索引列表”逐一从数据库中取出数据,将数据描画到帧的位图中,并填写此帧中“实际描画的数据索引列表”。然后从帧队列中取下一帧做相同处理。
进一步地,当帧队列为空时打印线程便进入睡眠模式,当控制线程向帧队列中添加一帧时唤醒打印线程。打印线程处理完所有帧队列中的帧后再次进入睡眠模式。
步骤4中,显示线程在处理完显示任务后进入睡眠模式,打印线程每处理完一帧数据后,唤醒显示线程。
本发明具有如下的优点和有益效果:
1.资源占用小,加载速度快,实现了内存使用量与实际数据量的无关性,由于帧数固定,那么最多加载到内存中的数据量也就固定了,不会随着实际数据项数量增加而增加内存消耗。
2.滚动平滑,由于帧轮的转动速度不受实际数据读取速度的限制,因此呈现给用户的始终是一个响应速度快,滚动效果流畅显示视图。
3. 迅速定位,用户可以迅速定位到指定位置。
附图说明
图1为本发明方法的流程简图;
图2为本发明方法的流程图。
具体实施方式
下面结合实施例与附图对本发明进行详细地说明。
如图1所示,一种通过显示屏平滑显示大数据量的方法,为在显示屏上进行数据的显示,包括显示线程(Displayer)、控制线程(Controller)、打印线程(Printer)、帧轮(FrameWheel)以及帧队列(FrameQueue);其中帧轮由N个图像帧组成,由控制线程控制自由转动,每个图像帧包含一个位图,“需要描画的数据索引列表”和“实际描画的数据索引列表”。
该方法包括以下步骤:
如图2所示,步骤1)首先,控制线程接收用户事件,根据事件内容修改游标(Cursor)的值,驱动帧轮的旋转,并控制帧轮的旋转速度以及方向,游标值增大,帧轮向正向转动,游标值减小,帧轮逆向转动,控制线程通过控制游标的变化速度控制帧轮的转动速度。控制线程根据游标计算出每一帧中“需要描画的数据索引列表”,然后对每个帧判断是否“需要描画的数据索引列表”和“实际描画的数据索引列表”相同,若相同,忽略此帧,若不相同,将此帧位图初始化即将此帧位图上的老旧数据擦除然后设置为无数据时的显示背景,将该帧添加到帧队列中;在帧添加到帧队列之前首先检查帧队列中是否已存在此帧,若存在,将此帧从帧队列中删除,这样会避免无用的处理,同时也保证了帧队列的最大长度不会超过总帧数。
步骤2)打印线程检查帧队列是否为空,若空则挂(即,不处理,挂起就是“睡眠”的意思,当控制线程将帧放入帧队列中时将其唤醒),若不空,从帧队列中取出一帧,根据“需要描画的数据索引列表”到数据库(DB)中检索对应的数据,然后将检索到的数据描画在所取帧的位图上,描画完所有数据后填写“实际描画的数据索引列表”,然后从帧队列中取下一帧做相同处理;
步骤3)显示线程根据游标计算触摸屏上窗口在帧轮中的映射位置,根据映射位置将帧轮中图像帧的内容描画到触摸屏的窗口中,这样在帧轮旋转的时候通过视窗呈现给用户的就是一个滚动的视图。
步骤2)中,将检索到的数据描画在所取帧的位图上后唤醒显示线程进行显示处理。
视图窗口创建时,控制线程从数据库中读取数据个数,根据数据个数计算游标移动范围,将游标归零,清除每帧中的“需要描画的数据索引列表”和“实际描画的数据索引列表”。游标归零是为了从第一条数据开始显示。
根据以上处理,当打印线程处理速度(读取数据库的速度)比控制线程进队速度慢时,由于数据未加载,窗口显示的将会是图像帧进队时的初始化状态。但并不会因此而影响到控制线程控制帧轮的转动,因为这是在不同线程中的处理。
另外对于帧轮中帧的个数N也可以根据实际情况进行调整,N越小占用资源越小,缓冲相对也小,适用于数据读取速度较快的情形。当数据速度较慢时可以适当调大N值以增加缓冲区,这样可以减少初始化帧的出现几率。
Claims (10)
1.一种通过显示屏平滑显示大数据量的方法,其特征在于,在显示屏窗口上进行数据的显示,包括三个线程:显示线程、控制线程和打印线程,数据结构包括:帧轮,帧队列和游标;其中帧轮由N个图像帧组成,每个图像帧包含:一个位图,需要描画的数据索引列表,实际描画的数据索引列表;处理流程包括以下步骤:
1)控制线程接收来自窗口的用户事件,根据事件内容修改游标值,驱动帧轮旋转,将需要重新描画的帧添加到帧队列中;
2)打印线程根据帧队列中每一帧的“需要描画的数据索引列表”从数据库中检索数据,并将检索到的数据描画到相应帧中的位图上;
3)显示线程根据游标计算显示屏窗口在帧轮中的映射位置,根据映射位置将帧轮中图像帧的内容描画到窗口中。
2.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,显示窗口被创建时,需要进行初始化处理,包括以下处理步骤:
1)从数据库中检索需要显示的数据个数,根据数据个数计算游标的移动范围;
2)将帧轮中每一帧的位图设置为无数据时的显示背景;
3)将帧轮中每一帧的“需要描画的数据索引列表”清空;
4)将帧轮中每一帧的“实际描画的数据索引列表”清空;
5)将游标设置为0。
3.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤1中,控制线程根据用户事件内容修改游标值,根据修改后的游标值计算帧轮中每一帧的“需要描画的数据索引列表”,然后判断“需要描画的数据索引列表”是否与此帧中“实际描画的数据索引列表”一致,若不一致那么将此帧添加到帧队列中。
4.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤2中,打印线程从帧队列中取出一帧,跟据帧中的“需要描画的数据索引列表”逐一从数据库中取出数据,将数据描画到帧的位图中,并填写此帧中“实际描画的数据索引列表”;然后从帧队列中取下一帧做相同处理。
5.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤3中,显示线程在处理完显示任务后进入睡眠模式,打印线程每处理完一帧数据后,唤醒显示线程。
6.按照权利要求3所述的通过显示屏平滑显示大数据量的方法,其特征在于,根据用户事件的内容决定游标值的加减,根据用户事件的内容计算游标值改变的加速度,根据此加速度控制游标值的变化速度;游标值增加,帧轮正向转动,游标值减小,帧轮逆向转动。
7.按照权利要求3所述的通过显示屏平滑显示大数据量的方法,其特征在于,每次将帧添加到帧队列之前先根据帧从0 ~ N-1的编号判断此帧是否存在于帧队列,若存在,从帧队列将旧的帧删除,然后再将此帧添加到帧队列末尾,控制帧队列的长度在 0 ~ N之间。
8.按照权利要求3所述的通过显示屏平滑显示大数据量的方法,其特征在于,每次将帧添加到帧队列之前先将帧中的位图初始化为无数据时的显示背景。
9.按照权利要求4所述的通过显示屏平滑显示大数据量的方法,其特征在于,当帧队列为空时打印线程便进入睡眠模式,当控制线程向帧队列中添加一帧时唤醒打印线程;打印线程处理完所有帧队列中的帧后再次进入睡眠模式。
10.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤1中,用户事件包括直接滑动屏幕窗口,拖动窗口滚动条。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310216038.8A CN103345371B (zh) | 2013-05-31 | 2013-05-31 | 一种通过显示屏平滑显示大数据量的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310216038.8A CN103345371B (zh) | 2013-05-31 | 2013-05-31 | 一种通过显示屏平滑显示大数据量的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103345371A true CN103345371A (zh) | 2013-10-09 |
CN103345371B CN103345371B (zh) | 2016-06-01 |
Family
ID=49280171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310216038.8A Active CN103345371B (zh) | 2013-05-31 | 2013-05-31 | 一种通过显示屏平滑显示大数据量的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345371B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681439A (zh) * | 2018-05-29 | 2018-10-19 | 北京维盛泰科科技有限公司 | 基于帧率控制的均匀显示方法 |
WO2019233410A1 (en) * | 2018-06-06 | 2019-12-12 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for displaying object box in a video |
CN111510629A (zh) * | 2020-04-24 | 2020-08-07 | Oppo广东移动通信有限公司 | 数据显示方法、图像处理器、拍摄装置和电子设备 |
CN114003321A (zh) * | 2020-07-28 | 2022-02-01 | 华为技术有限公司 | 一种显示方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004187264A (ja) * | 2002-10-11 | 2004-07-02 | Ntt Docomo Inc | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム |
CN1964487A (zh) * | 2005-11-11 | 2007-05-16 | 北京微视讯通数字技术有限公司 | 用于视频编码处理的快速刷新方法和装置 |
US20110289394A1 (en) * | 2010-05-20 | 2011-11-24 | Lg Electronics Inc. | Mobile terminal and controlling method thereof |
CN102262628A (zh) * | 2010-05-24 | 2011-11-30 | 卓望数码技术(深圳)有限公司 | 一种网页分割方法和分页服务器 |
CN102682093A (zh) * | 2012-04-25 | 2012-09-19 | 广州市动景计算机科技有限公司 | 一种移动浏览器网页分段加载方法及系统 |
-
2013
- 2013-05-31 CN CN201310216038.8A patent/CN103345371B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004187264A (ja) * | 2002-10-11 | 2004-07-02 | Ntt Docomo Inc | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム |
CN1964487A (zh) * | 2005-11-11 | 2007-05-16 | 北京微视讯通数字技术有限公司 | 用于视频编码处理的快速刷新方法和装置 |
US20110289394A1 (en) * | 2010-05-20 | 2011-11-24 | Lg Electronics Inc. | Mobile terminal and controlling method thereof |
CN102262628A (zh) * | 2010-05-24 | 2011-11-30 | 卓望数码技术(深圳)有限公司 | 一种网页分割方法和分页服务器 |
CN102682093A (zh) * | 2012-04-25 | 2012-09-19 | 广州市动景计算机科技有限公司 | 一种移动浏览器网页分段加载方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681439A (zh) * | 2018-05-29 | 2018-10-19 | 北京维盛泰科科技有限公司 | 基于帧率控制的均匀显示方法 |
WO2019233410A1 (en) * | 2018-06-06 | 2019-12-12 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for displaying object box in a video |
US11438527B2 (en) | 2018-06-06 | 2022-09-06 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for displaying object box in a video |
CN111510629A (zh) * | 2020-04-24 | 2020-08-07 | Oppo广东移动通信有限公司 | 数据显示方法、图像处理器、拍摄装置和电子设备 |
CN114003321A (zh) * | 2020-07-28 | 2022-02-01 | 华为技术有限公司 | 一种显示方法及电子设备 |
CN114003321B (zh) * | 2020-07-28 | 2023-05-05 | 华为技术有限公司 | 一种显示方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103345371B (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9069416B2 (en) | Method and system for selecting content using a touchscreen | |
US9971846B1 (en) | Online information system with continuous scrolling and user-controlled content | |
CN105373522B (zh) | 基于手势的图表上的数据筛选 | |
US10318589B2 (en) | Detection and display of volatile data | |
US8108779B1 (en) | Collaborative editing operations | |
US20180101295A1 (en) | System for displaying elements of a scrollable list | |
US20140250371A1 (en) | Methods and Systems for Page Layout Using a Virtual Art Director | |
CN103345371A (zh) | 一种通过显示屏平滑显示大数据量的方法 | |
JP2008197634A (ja) | 情報を表示する装置及び方法 | |
CN102929511A (zh) | 用于对值进行就地编辑的用户界面 | |
DE102012214945A1 (de) | Verfahren und Vorrichtung zum Optimieren von Systembatterielebensdauer für statische oder halbstatische Bildbetrachtungsnutzungsmodelle | |
WO2019071802A1 (zh) | 文档批注方法、装置和电子设备 | |
US8537180B1 (en) | System and method for viewing content | |
US20120005616A1 (en) | Methods and systems for providing information about a narrative | |
CN109298905A (zh) | 利用前端编程语言优化图片懒加载的方法以及电子设备 | |
EP1577744A2 (en) | Automatic height adjustment for electronic highlighter pens and mouse devices | |
CN101777065A (zh) | 一种用于移动通讯设备终端的多页面浏览器及其应用方法 | |
US7831572B1 (en) | Maintaining and displaying user ordered lists | |
US9612734B1 (en) | Random access browser scrolling for large pages | |
US10895954B2 (en) | Providing a graphical canvas for handwritten input | |
US9442638B2 (en) | Display of data on a device | |
US9710124B2 (en) | Augmenting user interface elements based on timing information | |
US8639804B2 (en) | Techniques for maintaining current content | |
EP2277120A2 (en) | Proactive image reminding and selection method | |
US20180349018A1 (en) | Rendering animated user input strokes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |