CN103345371B - 一种通过显示屏平滑显示大数据量的方法 - Google Patents

一种通过显示屏平滑显示大数据量的方法 Download PDF

Info

Publication number
CN103345371B
CN103345371B CN201310216038.8A CN201310216038A CN103345371B CN 103345371 B CN103345371 B CN 103345371B CN 201310216038 A CN201310216038 A CN 201310216038A CN 103345371 B CN103345371 B CN 103345371B
Authority
CN
China
Prior art keywords
frame
data
display
thread
drawn
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
Application number
CN201310216038.8A
Other languages
English (en)
Other versions
CN103345371A (zh
Inventor
徐立坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENYANG NEUSOFT XIKANG MEDICAL SYSTEMS Co Ltd
Original Assignee
SHENYANG NEUSOFT XIKANG MEDICAL SYSTEMS Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENYANG NEUSOFT XIKANG MEDICAL SYSTEMS Co Ltd filed Critical SHENYANG NEUSOFT XIKANG MEDICAL SYSTEMS Co Ltd
Priority to CN201310216038.8A priority Critical patent/CN103345371B/zh
Publication of CN103345371A publication Critical patent/CN103345371A/zh
Application granted granted Critical
Publication of CN103345371B publication Critical patent/CN103345371B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 (8)

1.一种通过显示屏平滑显示大数据量的方法,其特征在于,在显示屏窗口上进行数据的显示,包括三个线程:显示线程、控制线程和打印线程,数据结构包括:帧轮,帧队列和游标;其中帧轮由N个图像帧组成,每个图像帧包含:一个位图,需要描画的数据索引列表,实际描画的数据索引列表;处理流程包括以下步骤:
1)控制线程接收来自窗口的用户事件,根据事件内容修改游标值,驱动帧轮旋转,将需要重新描画的帧添加到帧队列中;控制线程通过控制游标的变化速度控制帧轮的转动速度,控制线程根据游标计算出每一帧中“需要描画的数据索引列表”,然后对每个帧判断是否“需要描画的数据索引列表”和“实际描画的数据索引列表”相同,若相同,忽略此帧,若不相同,将此帧位图初始化即将此帧位图上的老旧数据擦除然后设置为无数据时的显示背景,将该帧添加到帧队列中;在帧添加到帧队列之前首先检查帧队列中是否已存在此帧,若存在,将此帧从帧队列中删除;
2)打印线程根据帧队列中每一帧的“需要描画的数据索引列表”从数据库中检索数据,并将检索到的数据描画到相应帧中的位图上;
3)显示线程根据游标计算显示屏窗口在帧轮中的映射位置,根据映射位置将帧轮中图像帧的内容描画到窗口中。
2.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,显示窗口被创建时,需要进行初始化处理,包括以下处理步骤:
1)从数据库中检索需要显示的数据个数,根据数据个数计算游标的移动范围;
2)将帧轮中每一帧的位图设置为无数据时的显示背景;
3)将帧轮中每一帧的“需要描画的数据索引列表”清空;
4)将帧轮中每一帧的“实际描画的数据索引列表”清空;
5)将游标设置为0。
3.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤2中,打印线程从帧队列中取出一帧,根据帧中的“需要描画的数据索引列表”逐一从数据库中取出数据,将数据描画到帧的位图中,并填写此帧中“实际描画的数据索引列表”;然后从帧队列中取下一帧做相同处理。
4.按照权利要求3所述的通过显示屏平滑显示大数据量的方法,其特征在于,当帧队列为空时打印线程便进入睡眠模式,当控制线程向帧队列中添加一帧时唤醒打印线程;打印线程处理完所有帧队列中的帧后再次进入睡眠模式。
5.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤3中,显示线程在处理完显示任务后进入睡眠模式,打印线程每处理完一帧数据后,唤醒显示线程。
6.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,根据用户事件的内容决定游标值的加减,根据用户事件的内容计算游标值改变的加速度,根据此加速度控制游标值的变化速度;游标值增加,帧轮正向转动,游标值减小,帧轮逆向转动。
7.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,每次将帧添加到帧队列之前先根据帧从0~N-1的编号判断此帧是否存在于帧队列,若存在,从帧队列将旧的帧删除,然后再将此帧添加到帧队列末尾,控制帧队列的长度在0~N之间。
8.按照权利要求1所述的通过显示屏平滑显示大数据量的方法,其特征在于,步骤1中,用户事件包括直接滑动屏幕窗口,拖动窗口滚动条。
CN201310216038.8A 2013-05-31 2013-05-31 一种通过显示屏平滑显示大数据量的方法 Active CN103345371B (zh)

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 CN103345371A (zh) 2013-10-09
CN103345371B true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108681439B (zh) * 2018-05-29 2021-04-27 北京维盛泰科科技有限公司 基于帧率控制的均匀显示方法
CN108983306B (zh) * 2018-06-06 2019-11-19 浙江大华技术股份有限公司 一种物品边框平滑显示的方法及安检设备
CN111510629A (zh) * 2020-04-24 2020-08-07 Oppo广东移动通信有限公司 数据显示方法、图像处理器、拍摄装置和电子设备
CN114003321B (zh) * 2020-07-28 2023-05-05 华为技术有限公司 一种显示方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964487A (zh) * 2005-11-11 2007-05-16 北京微视讯通数字技术有限公司 用于视频编码处理的快速刷新方法和装置
CN102262628A (zh) * 2010-05-24 2011-11-30 卓望数码技术(深圳)有限公司 一种网页分割方法和分页服务器
CN102682093A (zh) * 2012-04-25 2012-09-19 广州市动景计算机科技有限公司 一种移动浏览器网页分段加载方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3513148B1 (ja) * 2002-10-11 2004-03-31 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム
KR20110127853A (ko) * 2010-05-20 2011-11-28 엘지전자 주식회사 이동 단말기 및 그 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964487A (zh) * 2005-11-11 2007-05-16 北京微视讯通数字技术有限公司 用于视频编码处理的快速刷新方法和装置
CN102262628A (zh) * 2010-05-24 2011-11-30 卓望数码技术(深圳)有限公司 一种网页分割方法和分页服务器
CN102682093A (zh) * 2012-04-25 2012-09-19 广州市动景计算机科技有限公司 一种移动浏览器网页分段加载方法及系统

Also Published As

Publication number Publication date
CN103345371A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
US8325139B2 (en) Scrolling behavior-influenced algorithm selection to facilitate adaptive scrolling
CN103345371B (zh) 一种通过显示屏平滑显示大数据量的方法
KR101069577B1 (ko) 전자 하이라이터 펜 및 마우스 장치의 자동 높이 조절
CN105373522B (zh) 基于手势的图表上的数据筛选
US9513769B2 (en) Methods and systems for non-linear representation of time in calendar applications
EP2579144B1 (en) Determining a target position for scrolling content
US20080079972A1 (en) Image-based document display
US20120272181A1 (en) Method and apparatus for intuitive wrapping of lists in a user interface
US10318589B2 (en) Detection and display of volatile data
CN102929511A (zh) 用于对值进行就地编辑的用户界面
US8537180B1 (en) System and method for viewing content
US20130151958A1 (en) Method for displaying electronic document, and device and computer program therefor
US20120064946A1 (en) Resizable filmstrip view of images
US20120005616A1 (en) Methods and systems for providing information about a narrative
US9652141B2 (en) Portable electronic device including touch-sensitive display and method of controlling same
CN106372008A (zh) 一种数据缓存方法及装置
WO2014150611A1 (en) Document scale and position optimization
US9442638B2 (en) Display of data on a device
JP6199917B2 (ja) 携帯機器における可読性の改善
US20120019995A1 (en) Embedded system and method for adjusting content
US20170371846A1 (en) Document scale and position optimization
EP2669779B1 (en) Portable electronic device including touch-sensitive display and method of controlling same
CN107463567B (zh) 数据缓存加载方法和装置以及便携式终端设备
KR20150090617A (ko) 프리로딩을 이용한 화면 표시를 위한 장치 및 이를 위한 방법이 기록된 컴퓨터 판독 가능한 기록 매체
EP2669780A1 (en) Portable electronic device including a placeholder for an entry field and method of controlling same

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