CN114968059B - 一种控件滑动的方法及电子设备 - Google Patents
一种控件滑动的方法及电子设备 Download PDFInfo
- Publication number
- CN114968059B CN114968059B CN202210432178.8A CN202210432178A CN114968059B CN 114968059 B CN114968059 B CN 114968059B CN 202210432178 A CN202210432178 A CN 202210432178A CN 114968059 B CN114968059 B CN 114968059B
- Authority
- CN
- China
- Prior art keywords
- sliding
- frame
- touch point
- touch
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 171
- 238000006073 displacement reaction Methods 0.000 claims abstract description 246
- 230000004044 response Effects 0.000 claims description 60
- 238000012937 correction Methods 0.000 claims description 47
- 230000015654 memory Effects 0.000 claims description 33
- 230000008569 process Effects 0.000 abstract description 90
- 230000016776 visual perception Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 36
- 230000006854 communication Effects 0.000 description 36
- 230000006870 function Effects 0.000 description 32
- 238000004422 calculation algorithm Methods 0.000 description 29
- 238000012545 processing Methods 0.000 description 29
- 239000010410 layer Substances 0.000 description 22
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 16
- 230000001360 synchronised effect Effects 0.000 description 14
- 230000005236 sound signal Effects 0.000 description 13
- 239000007787 solid Substances 0.000 description 12
- 238000010295 mobile communication Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000009499 grossing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000037433 frameshift Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
- G06F3/04855—Interaction with scrollbars
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了一种控件滑动的方法及电子设备,该电子设备可以是具有触摸屏结构的手机、平板电脑等,当检测到用户的滑动操作,在目标控件跟随用户手指触摸点的滑动轨迹进行滑动的过程中,该方法可以将手指触摸点的滑动位移和目标控件的滑动位移之间的位移差值△平均到N帧中的每一帧进行平缓地补偿,使得目标控件可以平缓匀速的跟上用户手指触摸点的滑动轨迹。该方法可以提高滑动操作过程中目标控件的跟手性,并避免一次性补偿目标控件和手指触摸点之间的位移差值△导致的首帧跳变,给用户造成跳变的视觉感受;此外,该过程总耗时T小于或等于0.4秒,可以在较短时间内实现目标控件的平滑跟手,提高了用户体验。
Description
本申请为申请号为CN202110884578.8的中国申请的分案,且本申请也要求申请号为CN202110524067.5的中国申请的优先权。
技术领域
本申请涉及电子技术领域,尤其涉及一种控件滑动的方法及电子设备。
背景技术
目前,大部分电子设备的显示屏设置有触摸传感器,触摸传感器和显示屏可以组成“触摸屏”。例如手机、平板、智能手表、车载设备等都配置了触摸屏,用户可以通过在触摸屏上或附近的触摸操作,与电子设备进行交互,实现对电子设备的操控。
具体地,用户执行触摸操作时,手指与屏幕接触时可以产生触屏信号,电子设备的触摸传感器可以检测该触屏信号,电子设备可以按照固定的周期对该触屏信号进行采样,并根据获取的触屏信号生成触控事件,将该触控事件上报给应用层安装的应用程序(application,App),应用程序可以根据该触控事件做出响应。
可选地,该触控事件可以包括触摸点的坐标、触摸状态等参数。其中,根据相邻两帧是否都检测到该触屏信号,将触摸状态分为:(1)DOWN事件,即相邻两帧中前一帧未检测到触屏信号,后一帧检测到触屏信号;(2)MOVE事件,即相邻两帧中前后两帧都检测到触屏信号;(3)UP事件,即相邻两帧中前一帧检测到触屏信号,后一帧未检测到触屏信号。
应理解,每一个触摸操作都是从DOWN事件开始,经过一系列MOVE事件,直到检测到UP事件结束,换言之,每一个触控事件都可以由DOWN事件、一个或多个MOVE事件和UP事件构成。电子设备可以基于特定软件算法等,识别并区分该触控事件的触摸状态,进一步可以根据触摸状态判断用户的触摸操作的类型,例如滑动操作、点击操作、长按操作、双击操作、缩放操作等。
示例性的,以滑动操作为例,当检测DOWN事件时,以检测到该DOWN事件的帧为起始帧,记录该起始帧中用户手指触摸点的起始坐标,持续监听后续每一帧的MOVE事件,如果某一帧的MOVE事件中用户手指触摸点的坐标与起始坐标之间的位移超过预设值,可以将当前的操作判定为滑动操作。响应于用户的滑动操作,用户手指触及的控件可以跟随用户的手指进行滑动。上述滑动操作的判断过程中,“预设值”还可以称为“滑动响应阈值”,由于该滑动响应阈值的存在,控件在跟随用户手指触摸点滑动的过程中可能出现延后的情况,影响了用户的操作体验。
发明内容
本申请提供一种控件滑动的方法及电子设备,该方法可以实现目标控件平缓匀速的跟上用户手指触摸点的滑动轨迹,提高用户执行滑动操作过程中目标控件的跟手性,并避免一次性补偿目标控件和手指触摸点之间的位移差值△导致的首帧跳变,给用户造成跳变的视觉感受。
第一方面提供了一种控件滑动的方法,应用于包括触摸屏的电子设备,所述方法包括:接收用户在所述触摸屏的触摸操作,所述触摸操作的起始帧中包括第一触摸点,所述第一触摸点为所述触摸操作的起始触摸点,所述触摸操作的结束帧中包括第二触摸点,所述第二触摸点为所述触摸操作的结束触摸点;根据所述第一触摸点的位置,确定目标控件;根据滑动响应阈值,判断所述触摸操作是否是滑动操作;当所述触摸操作是滑动操作时,根据所述滑动响应阈值,确定临界帧,所述临界帧中包括第三触摸点,与所述临界帧相邻的下一帧中包括第四触摸点,其中,在所述触摸操作的滑动方向上,所述第三触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值,且所述第四触摸点和所述第一触摸点的距离大于所述滑动响应阈值;根据所述第三触摸点和所述第一触摸点在所述滑动方向上的距离和预设常数N,计算从所述临界帧相邻的下一帧开始的N帧中每一帧的位移修正量,N大于1且小于或等于所述滑动响应阈值;所述目标控件从所述临界帧相邻的下一帧开始在所述滑动方向上滑动,且在所述目标控件开始滑动的连续所述N帧中,每一帧的滑动位移为所述每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离,加上所述每一帧的位移修正量之后的和;所述目标控件在连续所述N帧之后继续在所述滑动方向上滑动,且在连续所述N帧之后至所述触摸操作的结束帧中,每一帧的滑动位移为所述每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离。
应理解,每一个触摸操作都是从DOWN事件开始,经过一系列MOVE事件,直到检测到UP事件结束。本申请中“触摸操作”也包括一帧DOWN事件,连续多帧的MOVE事件,直到检测到一帧UP事件结束,将检测到该DOWN事件的帧定义为“触摸操作的起始帧”,将检测到该UP事件的帧定义为“触摸操作的结束帧”,“触摸操作的起始帧”和“触摸操作的起始帧”之间包括连续多帧。
还应理解,本申请中的“从所述临界帧相邻的下一帧开始的N帧”是所述触摸操作的结束帧之前的帧,换言之,N帧中的最后一帧(第N帧)位于所述触摸操作的结束帧之前;或者,N帧中的最后一帧(第N帧)也可以是所述触摸操作的结束帧,本申请实施例对此不作限定。
还应理解,“位移”的含义为“某个方向上的距离”,本申请中“每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离”即为用户手指触摸点的从前一帧到当前帧的滑动位移,同理,所述触摸操作的起始触摸点到所述触摸操作的结束触摸点在所述滑动方向上的距离即为用户执行滑动操作过程手指的滑动总位移。
本申请中,“临界帧”可以理解为:检测到目标控件开始滑动的画面帧相邻的前一帧。在“临界帧”内,手指触摸点相对于起始帧中手指的起始触摸点的滑动位移小于或等于“滑动响应阈值”,目标控件没有开始滑动,即目标控件相对于起始帧中位置的滑动位移等于0;且在“临界帧”相邻的下一帧,目标控件开始滑动,即目标控件相对于起始帧中位置的滑动位移大于0。
通过上述方法,当用户执行的触摸操作是滑动操作时,电子设备可以根据触摸信号检测用户手指触及的目标控件,以及滑动操作的过程的每一帧中手指触摸点的位置和滑动位移。再根据相邻两帧中,前一帧手指触摸点的滑动位移小于或等于滑动响应阈值且后一帧手指触摸点的滑动位移大于滑动响应阈值,将该相邻两帧中的前一帧确定为临界帧,根据临界帧中手指触摸点和起始触摸点之间的位移计算位移修正量;进而控制目标控件从临界帧的下一帧开始响应滑动,并在该目标控件开始响应滑动的预设数量的N帧中,按照位移修正量对每一帧中目标控件相对于前一帧的滑动位移进行补偿,使得目标控件在滑动过程中,可以在N帧中平缓匀速的跟上用户手指触摸点的滑动轨迹。该方法可以提高滑动操作过程中目标控件的跟手性,并避免一次性补偿目标控件和手指触摸点之间的位移差值△导致的首帧跳变,给用户造成跳变的视觉感受,提高了用户的使用体验。
具体地,本申请可以实现在临界帧之后的N帧中,将位移差值△分配到N帧中进行平缓地补偿,可以使得目标控件平缓地追赶上手指触摸点,到临界帧之后的第N帧,目标控件的总滑动位移S和手指触摸点的总滑动位移d相等,该目标控件就可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步,实现该目标控件完全跟手。
此外,假设滑动响应阈值为24像素,由于△≤24,N取最大值24时最长的耗时为0.4秒,即上述方法中,电子设备可以在较短时间内就可以实现目标控件的平滑跟手,提高了用户的使用体验。
还应理解,电子设备显示屏上位移最小的计量单位为1像素,又因为位移差值△≤24像素,因此预设常数N≤△,即N≤24。
可选地,N的取值可以为24、12、6、4等,保证N帧的每一帧中位移修正的像素值为整数。示例性的,当N=24时,可以理解为:在临界帧之后的连续24帧内,将位移差值△全部补偿,实现目标控件的总滑动位移S和手指触摸点的总滑动位移d相等,该目标控件就可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步。
结合第一方面,在第一方面的某些实现方式中,所述N帧中的每一帧的位移修正量之和等于所述第三触摸点和所述第一触摸点在所述滑动方向上的距离。
应理解,在“临界帧”相邻的下一帧,目标控件开始滑动,因此“临界帧”中手指触摸点(所述第三触摸点)和触摸操作的起始帧中手指触摸点(所述第一触摸点)之间的滑动位移即为位移差值△。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,所述N帧中的每一帧的位移修正量相同,所述根据所述第三触摸点和所述第一触摸点在所述滑动方向上的距离,计算N帧中的每一帧的位移修正量,包括:所述第三触摸点和所述第一触摸点在所述滑动方向上的距离,除以所述N,得到每一帧的平均位移修正量。
一种可能的实现方式中,N帧中的每一帧的位移修正量可以相同,即N帧中每一帧的平均位移修正量可选地,可以根据该位移差值△计算N帧中每一帧的平均位移修正量并按照该平均位移修正量确定目标控件在N帧的每一帧中实际滑动位移。
另一种可能的实现方式中,N帧中的每一帧的位移修正量可以不相同。可选地,在临界帧之后的N帧中,目标控件在每一帧的位移修正量可以以一定的变化规律进行变化,例如等差数列等变化规律,本申请实施例对此不作限定。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,所述目标控件从与所述临界帧相邻的下一帧开始滑动,且所述目标控件在滑动过程中的滑动速度为用户执行所述触摸操作的过程中手指触摸点的滑动速度。
一种可能的实现方式中,所述目标控件从与所述临界帧的下一帧开始滑动,且所述目标控件在滑动过程中的滑动速度为用户执行所述滑动操作的过程中手指触摸点的滑动速度。
可选地,滑动手势识别器可以根据预设时长内用户手指触摸点的滑动速度确定目标控件的滑动速度。例如,滑动手势识别器可以以200毫秒为单位,根据用户手指触摸点的滑动位移计算平均滑动速度。
通过上述计算过程,滑动手势识别器可以输出目标控件在预设时段内的平均滑动速度,并将该平均滑动速度传递给目标控件,该目标控件可以根据以手指触摸点相同的滑动速度进行滑动,避免了目标控件和手指触摸点滑动速度的偏差,提高了目标控件的跟手性。
另一种可能的实现方式中,目标控件从临界帧的下一帧开始滑动,且滑动速度可以完全同步于用户手指触摸点的滑动速度。例如,某连续多帧内,用户手指滑动快,目标控件就滑动快;某连续多帧内,用户手指滑动慢,目标控件就滑动慢,该方式可以保证目标控件的跟手滑行更贴手,提高用户的视觉体验。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,所述根据滑动响应阈值,判断所述触摸操作是否是滑动操作,包括:从所述触摸操作的起始帧开始,每一帧中检测到用户的触摸点,且在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离大于所述滑动响应阈值时,确定所述触摸操作是所述滑动操作;或者,从所述触摸操作的起始帧开始,至少一帧中没有检测到用户的触摸点,和/或在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值时,确定所述触摸操作不是所述滑动操作。
应理解,电子设备的手势识别模块中可以包括多种不同的手势识别器,例如单击手势识别器、滑动手势识别器、多指缩放手势识别器等,不同的手势识别器中存储了多种不同手势的判定条件。当电子设备的手势识别模块获取该触控(touch)事件之后,可以根据不同的判定规则将触摸操作判定为其中的一种手势。
示例性的,在本申请中,滑动手势识别器可以存储有滑动操作的判定条件,当获取的该触控(touch)事件满足滑动操作的判定规则时,可以将当前的触摸操作确定为滑动操作。滑动操作的判定规则可以包括:(1)检测到一个DOWN事件和一个或多个MOVE事件;(2)以检测到的DOWN事件的画面帧为触摸操作的起始帧,触摸操作的起始帧之后的连续多帧中的每一帧都检测到触屏信号,即用户手指没有离开触摸屏,且连续多帧的某一帧中用户的手指触摸点和起始帧中的起始触摸点A的滑动位移大于或等于滑动响应阈值(例如24像素)。
还应理解,滑动手势识别器中内置有控件滑动算法,例如本申请后续将介绍的“平滑补偿算法”,并开放接口,可以将内置有控件滑动算法提供给各个不同应用的可滑动的控件直接调用控件滑动算法,当同时满足上述滑动操作的判定规则包括的2个条件时,电子设备的手势识别模块可以将当前的用户执行的触摸操作判断为滑动操作,且进一步调用手势识别模块中滑动手势识别器存储的控件滑动算法。
可选地,电子设备的滑动手势识别器可以区分水平方向、垂直方向、或者任意方向上的滑动操作,本申请实施例对滑动操作的滑动方向不作限定。
另一种可能的实现方式中,当电子设备的手势识别模块判断所述触摸操作不是滑动操作时,例如电子设备的手势识别模块判断所述触摸操作为单击等其他操作,并进入对应的处理流程。换言之,当电子设备的手势识别模块判断所述触摸操作不是滑动操作时,不会调用本申请实施例滑动手势识别器中内置的控件滑动算法,而进入其他手势识别器或者其他手势的响应过程。示例性的,当电子设备的手势识别模块判断所述触摸操作是单击手势时,调用单击手势识别器的算法,并响应该单击手势,本申请实施例对滑动操作之外的其他过程不作赘述。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,所述触摸屏的显示界面上包括一个或多个控件,所述根据所述第一触摸点的位置,确定目标控件,包括:根据所述第一触摸点的位置和所述一个或多个控件中每一个控件的显示区域,确定所述目标控件,所述第一触摸点位于所述目标控件的显示区域内的任意位置。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,所述目标控件包括列表控件、滚动视图控件、滑动控件、翻页控件中的任意一种。
可选地,与上述列举的列表控件、滚动视图控件、滑动控件、翻页控件等相关的派生类控件也可以落在本申请的保护范围之内。
可选地,该“目标控件”可以是以上介绍的任意一种类型的控件,也可以是多种不同类型的控件组合形成的新的组合控件。
可选地,该目标控件可以包括文本、图片、图标等不同的内容,本申请实施例对控件的类型和控件内容等不作限定。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
可选地,本申请提供的控件滑动的方法不但可以应用于用户单手指的滑动操作,还可以应用于其他多指滑动类操作中。其中,多指滑动类操作可以包括多指缩放操作(例如双指缩放操作)、多指旋转操作、多指平移操作等。
示例性的,在双指缩放操作中,两个手指触摸点可以在不同方向的滑动且产生滑动位移,当两个手指触摸点的滑动位移大于或等于滑动响应阈值时,响应于两个手指触摸点的滑动,目标控件可以进行尺寸的缩放,该过程也涉及目标控件的跟手性,因此也可以按照本申请实施例介绍的控件滑动的方法,计算每一帧中该目标控件的滑动位移和滑动速度,实现平缓匀速地补偿该目标控件的滑动位移,提高目标控件在滑动过程中的跟手性。
综上所述,在目标控件跟随用户滑动轨迹进行滑动的过程中,该方法可以将手指触摸点的滑动位移和目标控件的滑动位移之间的位移差值△平均到N帧中的每一帧进行平缓地补偿,使得目标控件在滑动过程中,可以平缓匀速的跟上用户手指触摸点的滑动轨迹。该方法可以提高滑动操作过程中目标控件的跟手性,并避免一次性补偿目标控件和手指触摸点之间的位移差值△导致的首帧跳变,给用户造成跳变的视觉感受,提高了用户体验。此外,该过程总耗时T小于或等于0.4秒,可以在较短时间内实现目标控件的平滑跟手。
第二方面提供了一种电子设备,包括:触摸屏;一个或多个处理器;一个或多个存储器;安装有多个应用程序的模块;所述存储器存储有一个或多个程序,所述一个或多个程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如第一方面和第一方面中任一项所述的方法。
第三方面提供了一种电子设备上的图形用户界面系统,所述电子设备具有触摸屏、一个或多个存储器、以及一个或多个处理器,所述一个或多个处理器用于执行存储在所述一个或多个存储器中的一个或多个计算机程序,所述图形用户界面系统包括所述电子设备执行如第一方面和第一方面中任一项所述的方法时显示的图形用户界面。
第四方面提供了一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,显示模块或单元、检测模块或单元、处理模块或单元等。
第五方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面和第一方面中任一项所述的方法。
第六方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面或者第一方面的任意一种可能的控件滑动的方法。
附图说明
图1是一例用户在手机的触摸屏上执行滑动操作的示意图。
图2是本申请实施例提供的一例手指触摸点和目标控件的滑动过程的示意图。
图3是本申请实施例提供的一例滑动操作过程中补偿位移差值△的示意图。
图4是本申请实施例提供的一例电子设备的结构示意图。
图5是本申请实施例提供的一例电子设备的软件结构框图。
图6是本申请实施例提供的一例控件滑动的方法的示意性流程图。
图7是本申请实施例提供的一例手指触摸点和目标控件的滑动过程的示意图。
图8是本申请实施例提供的一例手指触摸点和目标控件的滑动位移曲线图。
具体实施方式
应理解,对于不同的用户界面(user interface,UI),手机的显示屏可以显示不同种类、不同数量、不同内容的控件。控件主要可以包括UI栏控件(bars)、视图控件(views)和控制控件(controls)等。
其中,UI栏控件(bars)可以包括导航栏、搜索栏、状态栏、标签栏和工具栏等,例手机显示屏顶端区域显示的当前日期、时间、电池电量、运营商和信号图标等内容的状态栏等。
视图控件(views)可以包括操作列表(action sheets)、列表(list)控件、警告框(alert)、弹出框(popover)、滚动视图(scroll views)、图片视图(mage views)、活动视图(activity views)、加载视图(loading)等。例如手机负一屏界面上的天气卡片,手机界面上的悬浮弹窗、消息对话框等。
控制控件(controls)可以包括分页控件(page controls)、分段控件(segmentedcontrols)、刷新内容控件(refresh context)、滑动控件(slider drawer)、翻页控件(viewpager)、开关(switches)、文本菜单(context menus)、编辑菜单(edit menus)、按钮(buttons)等。
对于上述列举的不同类型的控件,部分控件可以跟随用户手指在触摸屏上的触摸点的滑动轨迹进行滑动,例如列表(list)控件、滚动视图(scroll views)控件、滑动控件(slider drawer)、翻页控件(view pager)等以及相关的派生类控件,在本申请实施例中,都可以称为“可滑动的控件”。
可选地,该“可滑动的控件”可以是以上介绍的任意一种类型的控件,也可以是多种不同类型的控件组合形成的新的组合控件。
可选地,该可滑动的控件可以包括文本、图片、图标等不同的内容,本申请实施例对控件的类型和控件内容等不作限定。
为了便于理解,下面将以具有触摸屏的手机为例,结合附图,介绍用户在手机的触摸屏上执行滑动操作时,“可滑动的控件”响应于用户的滑动操作而进行滑动的过程。
图1是一例用户在手机的触摸屏上执行滑动操作的示意图。
示例性的,如图1中的(a)图所示,手机屏幕的显示区域显示了某个应用(例如地图类应用、购票类应用等)的车站选择界面101,该界面101包括城市和/或车站名的搜索框、城市列表区域。其中,该城市列表区域中按照一定的排列顺序显示了多个城市和/或车站名称。
对于图1中的(a)图所示的车站选择界面101,显示屏顶端显示区域的导航栏、城市和/或车站名的搜索框可以理解为前述介绍的“UI栏控件(bars)”,该城市列表区域中每一个城市和/或车站名称的显示区域可以理解“滚动视图(scroll views)控件”,例如图1中的(a)图中虚线框所示的“北京南站”控件10,且该“北京南站”控件10就是本申请实施例涉及的“可滑动的控件”。
一种可能的场景中,当用户期望变更手机界面上的某控件的显示位置时,可以手指触及该控件对应的显示区域的任意位置并执行滑动操作,响应于用户的滑动操作,该控件可以跟随用户手指的滑动轨迹而进行滑动。在本申请实施例中,可以将用户手指触及的该控件称为“目标控件”。
示例性的,以图1中的(a)图中虚线框所示的该“北京南站”控件10作为“目标控件”,用户手指可以触及该“北京南站”控件10的显示区域的任意位置,假设手指和显示屏的触摸点为A点,A点位于该“北京南站”控件10的显示区域内,以A为起始位置,手指沿着黑色箭头所示的竖直向下的方向进行滑动,滑动到点A1处释放,手指离开屏幕。响应于用户执行的A-A1的滑动操作,该“北京南站”控件10可以跟随用户手指的滑动轨迹而进行滑动,手机可以显示如图1中的(b)图所示的界面102。在该界面102上,该“北京南站”控件10滑动到A1所对应的目标位置,且该城市列表区域中显示的城市和/或车站名称进行了更新,此处不再赘述。
在该“北京南站”控件10在A-A1的滑动过程中,手机的具体实现过程可以包括两个阶段:
阶段1:判断用户当前的触摸操作为滑动操作;
阶段2:检测用户手指的滑动轨迹,并控制该“北京南站”控件10跟随用户手指触摸点的滑动轨迹进行滑动。
具体地,手机显示屏的触摸传感器可以检测手指与屏幕接触时产生的触屏信号,并按照固定的周期对该触屏信号进行采样,再根据获取的触屏信号生成触控(touch)事件,将该触控(touch)事件上报给应用层安装的应用程序,可以由应用程序判断当前的一系列的触控(touch)事件是否对应为滑动操作。当前的触控(touch)事件为滑动操作时,再持续性监听该触控(touch)事件中每一帧的MOVE事件中用户手指触摸点的位置坐标,进而确定用户手指触摸点的滑动轨迹。
应理解,手机等电子设备一般按照固定频率刷新显示屏的每一帧画面,例如当显示屏的刷新率为60Hz时,每一帧画面在显示屏上的显示时长为16.67毫秒。
可选地,触屏信号的采样周期可以由显示屏的屏幕刷新率决定。例如当手机的屏幕刷新率为1秒60帧时,触屏信号的采样周期可以为16.7ms获取一次。应理解,不同应用的显示界面可以对应不同的屏幕刷新率,那么不同应用的显示界面上触屏信号的采样周期也可以不同,本申请实施例对触屏信号的采样周期不作限定。
结合图1中的(a)图和(b)图所示的滑动过程,假设用户在手机触摸屏上的滑动方向平行于手机屏幕长边框(竖直边框),即手指触摸点在手机屏幕短边框(横向边框)方向上的位移为0。用户手指触摸点的起始位置为A点,以A点为起始位置,黑色箭头所示的竖直向下的方向(平行于手机长边框的方向)为滑动方向,通过检测触屏信号确定用户手指触摸点的滑动位移和滑动轨迹,该手指触摸点的滑动位移可以以像素(pixel,px)为单位计量。
一种可能的实现方式中,手机可以根据以下2个条件判断当前的触摸操作为滑动操作。具体地,在阶段1中,当同时满足以下2个条件时,手机可以将当前的触摸操作判断为滑动操作,2个条件可以包括:
(1)手机检测到一个DOWN事件和一个或多个MOVE事件,或者还可以进一步包括一个UP事件;
(2)以检测到的DOWN事件的画面帧为起始帧,起始帧之后的连续多帧中的每一帧都检测到触屏信号,即用户手指没有离开触摸屏,且连续多帧的某一帧中用户手指触摸点和起始帧中的触摸点A的滑动位移大于或等于滑动响应阈值。
可选地,该滑动响应阈值可以为系统预设的常数。假设“滑动响应阈值”为24px(或者记作8vp),即当MOVE事件对应的某一帧中检测到用户手指触摸点的位置与起始帧中的触摸点A之间的滑动位移超过24px时,可以将当前的触摸操作判定为滑动操作。此外,在手指触摸点和起始帧中的触摸点A的滑动位移大于24px时对应的第一帧内,该目标控件开始跟随用户的手指触摸点的滑动轨迹开始滑动。
图2是本申请实施例提供的一例手指触摸点和目标控件的滑动过程的示意图。
结合图1中的(a)图和(b)图介绍的滑动操作过程,以时间(单位:帧)为横轴(X轴),以滑动位移(单位:px)为纵轴(Y轴),建立坐标轴。上述滑动操作过程可以对应如图2中的(a)图所示,灰色填充的矩形框表示用户手指触及的目标控件(例如“北京南站”控件10),黑色实心箭头所示的方向为用户手指在触摸屏上的滑动方向。假设用户手指在触摸屏上的滑动方向为竖直向下的方向,该滑动方向平行于手机的长边框(竖直边框),因此该滑动过程仅在Y轴上有位移。
示例性的,如图2中的(a)图所示,在第1帧(起始帧),检测到用户手指触及该目标控件(例如“北京南站”控件10)并准备开始执行滑动操作,手机根据检测的触屏信号,确定第1帧(起始帧)内发生了DOWN事件,用户手指触摸点的起始位置为A点,A点的位置对应Y轴的0px。
用户手指开始沿着黑色实心箭头所示的竖直向下的方向滑动,例如在第2帧,用户手指滑动到B点,检测到MOVE事件。第2帧的手指触摸点B点和第1帧的起始位置A点之间距离即为手指触摸点的滑动位移d2,且d2<24px,目标控件(例如“北京南站”控件10)的显示位置保持不变,不跟随用户的手指触摸点的滑动轨迹滑动。
继续地,手指沿着黑色实心箭头所示的方向继续滑动,假设在第5帧,手指触摸点为C点,假设在第6帧时,手指触摸点为D点,且第2帧至第6帧中手机检测到一系列的MOVE事件。假设第5帧的手指触摸点C点与起始位置A点之间的距离d5≤24px,且第6帧的手指触摸点D点与起始位置A点之间的距离d6>24px,那么目标控件(例如“北京南站”控件10)可以在第6帧开始滑动,且在第6帧中目标控件相对于起始位置的滑动位移dx6=第6帧的手指触摸点D点相对于第5帧的手指触摸点C点的滑动位移d6-d5。
可选地,可以将第5帧可以称为“临界帧”,C点可以称为“临界点”。
应理解,在本申请实施例中“临界帧”的确定可以根据以下原则:在“临界帧”内,手指触摸点相对于起始帧中手指触摸点A点的滑动位移d小于或等于“滑动响应阈值”,目标控件没有开始滑动,即目标控件相对于起始帧中位置的滑动位移等于0,且在“临界帧”的下一帧内,目标控件开始滑动,即目标控件相对于起始帧中位置的滑动位移大于0,目标控件的滑动位移等于手指触摸点的滑动位移。换言之,可以将检测到目标控件开始滑动的画面帧相邻的前一帧确定为该“临界帧”。示例性的,如图2中的(a)图所示,目标控件开始滑动的画面帧为“第6帧”。
手指继续沿着黑色实心箭头所示的方向滑动,假设在第6帧时,手指触摸点为D点,D点相对于前一帧(第5帧)中手指触摸点C点的位移为dx6,同时,目标控件也沿着黑色实心箭头所示的滑动方向滑动了dx6。换言之,在第6帧内,手指触摸点滑动到D点,且手指触摸点从C点到D点的滑动位移d6-d5等于目标控件滑动的位移dx6。将手指触摸点从起始位置A点到D点的滑动位移d6和dx6具有以下公式(1)的数量关系:
d6=d5+dx6 公式(1)
第7帧内,手指触摸点为E点,E点相对于第6帧中手指触摸点D点的位移为dx7,同时,目标控件也沿着黑色实心箭头所示的滑动方向继续滑动了dx7。那么,手指触摸点从起始位置A点到E点的滑动位移d7和dx7具有以下公式(2)的数量关系:
d7=d5+dx6+dx7公式(2)
目标控件的总滑动位移记作S,则第6帧中,目标控件的总滑动位移S6=dx6;第7帧中,目标控件的总滑动位移S7=dx6+dx7,由以上公式和过程可知,在第6帧中,d6=d5+S6;第7帧中,d7=d5+S7……,以此类推,在滑动过程中,目标控件的总滑动位移S总是和用户手指触摸点的总滑动位移d之间具有位移差值△,即d=△+S。其中,该位移差值△等于临界帧中手指触摸点C点相对于起始帧中手指触摸点A点的位移,即△=d5。
上述过程中,用户手指触摸点和目标控件的滑动位移变化曲线可以如图2中的(b)图所示,其中,黑色细实线为用户手指触摸点的滑动位移d的变化曲线,黑色粗实线为用户手指触及的目标控件的实际滑动位移S的变化曲线。
结合图2中的(a)图的滑动过程,在第5帧,手指触摸点C相对于起始帧中手指触摸点A点的滑动位移d5小于滑动响应阈值(24px),那么在第1帧-第5帧的过程中,目标控件的实际滑动位移S=0。
第5帧之后的每一帧,目标控件的实际滑动位移S的变化趋势和手指触摸点的滑动位移d的变化趋势保持同步,即在图2中的(b)图中,黑色细实线和黑色粗实线从第5帧之后,变化趋势保持一致,且每一帧都存在该位移差值△。可选地,该位移差值△等于临界帧中手指触摸点C点相对于起始帧中手指触摸点A点的位移d5。
由于该位移差值△的存在,目标控件在滑动过程中并没有和用户手指的滑动保持同步,即目标控件开始滑动的时刻晚于用户手指触摸点开始滑动的时刻。如果对该位移差值△不进行补偿,手指触摸点的滑动位移d总是大于目标控件的实际滑动位移S,对于一些视觉感受比较敏感的用户,能够感受到目标控件的滑动相对于手指的滑动有些滞后,即目标控件的跟手性较差,影响了用户体验。
一种可能的实现方式中,可以对该位移差值△进行一次性补偿,以使得目标控件可以和用户手指的滑动保持同步。
图3是本申请实施例提供的一例滑动操作过程中补偿位移差值△的示意图。如图3中的(a)图所示,在第5帧,假设用户手指触摸点已经从起始位置A点滑动到临界点C点,C点与起始位置A点之间的距离d5≤24px,且第6帧内,用户手指触摸点D点与起始位置A点之间的距离d6>24px。那么第5帧作为“临界帧”,目标控件从临界帧的下一帧(第6帧)开始,沿着黑色实心箭头所示的滑动方向滑动,且在第6帧中目标控件相对于起始位置的滑动位移dx6等于第6帧的手指触摸点D点相对于第5帧的手指触摸点C点的滑动位移,即dx6=d6-d5。
当用户手指触摸点继续沿着黑色实心箭头所示的方向滑动,第6帧内,手指触摸点D点相对于第5帧中的手指触摸点C点的位移为dx6;同时,目标控件从起始位置A点,沿着黑色实心箭头所示的滑动方向滑动且一次性滑动位移S6=d6=d5+dx6,使得目标控件可以快速在开始滑动的第一帧内补偿该位移差值△,第6帧之后的每一帧中该目标控件就可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步。
上述过程可以对应图3中的(b)图的曲线,在第5帧,手指触摸点C相对于起始帧中手指触摸点A点的滑动位移d5小于滑动响应阈值(24px),那么在第1帧-第5帧的过程中,目标控件的实际滑动位移S=0。
在第5帧之后的第6帧,目标控件一次性补偿该位移差值△,即第6帧中实现目标控件的总滑动位移S等于手指触摸点的总滑动位移d。在第6帧之后的每一帧,黑色粗实线和黑色细实线的曲线重合,目标控件的实际滑动位移S一直等于手指触摸点的滑动位移d,且变化趋势保持同步,可以实现该目标控件跟随手指触摸点的滑动轨迹进行滑动。
在上述实现过程中,虽然补偿了该位移差值△的影响,使得该目标控件可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步。但是,目标控件开始响应滑动的初期,例如临界帧的下一帧(第6帧),目标控件一次性跳跃到手指触摸点D点的位置,导致目标控件滑动初期的位移较大,给用户造成了跳变的视觉感受,影响了用户体验。如果该位移差值△较大,目标控件的首帧跳变将更明显,如何提高目标控件的跟手性,同时避免给用户造成跳变的视觉感受,是当前亟需要解决的问题。
因此,本申请实施例将提供一种控件滑动的方法,该方法可以提高控件滑动过程中的跟手性,同时控件滑动过程中,不会出现首帧跳变的情况,可以提高用户的视觉体验。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。例如,第一触摸点、第二触摸点、第三触摸点等,仅表示在不同画面帧中检测到的用户的手指触摸点。
本申请实施例提供的控件滑动的方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等包括触摸屏的电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图4是本申请实施例提供的一例电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在本申请实施例中,处理器110存储有手势识别算法、控件滑动的算法等对应的程序或指令,用户通过不同的应用入口触发处理器110获取触摸传感器采集的用户执行触摸操作时产生的触屏信号,并根据触屏信号生成触控(touch)事件,再结合存储的手势识别算法确定触控(touch)事件对应的触摸操作是否是滑动操作。当触摸操作是滑动操作时,调用滑动操作对应的控件滑动的算法,计算用户执行滑动操作过程对应的每一帧中,用户手指触及的目标控件的实际滑动位移,从而控制该目标控件在每一帧的滑动过程,此处不再赘述。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G/6G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请实施例中,电子设备的显示屏194是触摸屏,即设置有触摸传感器的显示屏。示例性的,以图1所示的手机为例,用户在显示屏194执行触摸操作时,手指与屏幕接触时可以产生触屏信号,显示屏194的触摸传感器可以检测该触屏信号,例如可以按照固定的周期对该触屏信号进行采样,并根据获取的触屏信号生成触控(touch)事件,将该触控(touch)事件上报给应用层的应用程序,应用程序可以根据该触控事件做出响应。根据响应的结果,电子设备的视图系统等进行图像的绘制、渲染、合成,最终按照目标控件的新的显示位置或显示内容等在显示屏194上显示,呈现给用户。
示例性的,以图1中的(a)图和(b)图为例,用户手指可以触及该“北京南站”控件10的显示区域的任意位置,例如A点,以A点为起始位置,手指沿着竖直向下的方向进行滑动,滑动到点A1处释放,手指离开屏幕。响应于用户执行的A-A1的滑动操作,该“北京南站”控件10可以跟随用户手指的滑动轨迹而进行滑动,从而在显示屏194上为用户显示新的界面。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
在本申请实施例中,该触摸传感器180K可以周期性检测并采集用户执行任意一种触摸操作时产生的触屏信号,任意一种触摸操作可以包括滑动操作、点击操作、长按操作、双击操作、缩放操作等,并根据采集的触屏信号生成触控(touch)事件,将该触控(touch)事件传递给处理器110,由处理器110做出响应,例如判断当前的触摸操作是否是滑动操作等,此处不再赘述。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
图5是本申请实施例提供的一例电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图5中的(a)图所示,应用程序层可以包括相机、地图、导航、视频等应用程序,本申请实施例对应用程序的数量和种类不作限定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5中的(a)图所示,应用程序框架层可以包括窗口管理器、内容提供器、视图系统、资源管理器、多模输入模块、AGP window、手势识别模块等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断屏幕是否显示有状态栏,或者参与执行锁定屏幕、截取屏幕等操作。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。存放的数据可以包括视频数据、图像数据、音频数据等,还可以包括拨打和接听的通话记录数据,用户的浏览历史和书签等数据,此处不再赘述。
视图系统包括可视控件,例如本申请实施例中涉及的列表(list)控件、滚动视图(scroll views)、滑动控件(slider drawer)、翻页控件(view pager)等控件以及相关的派生类控件,在本申请实施例中,都可以称为“可滑动的控件”。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等等。
多模输入模块、AGP window和手势识别模块都可以参与检测并识别用户触摸操作的过程。示例性的,如图5中的(b)图所示,在本申请实施例中,电子设备100显示屏的触摸传感器可以按照固定的周期,将检测到的触屏信号传递给多模输入模块,多模输入模块可以根据获取的触屏信号生成触控(touch)事件,该触控(touch)事件可以包括手指触摸点的坐标、触摸状态等参数。多模输入模块再将该触控(touch)事件上传给AGP window,AGPwindow将该触控(touch)事件传递给手势识别模块。
手势识别模块中可以包括多种不同的手势识别器,例如单击手势识别器、滑动手势识别器、多指缩放手势识别器等,不同的手势识别器中存储了多种不同手势的判定条件。当电子设备的手势识别模块获取该触控(touch)事件之后,可以根据不同的判定规则将触摸操作(触摸操作)判定为其中的一种手势。
可选地,如果手势识别模块将当前的用户执行的触摸操作判断为滑动操作,可以进一步调用手势识别模块中滑动手势识别器存储的控件滑动的方法,按照该方法确定目标控件的滑动过程。
应理解,滑动手势识别器中内置有控件滑动算法,例如本申请后续将介绍的“平滑补偿算法”,并开放接口,可以将内置有控件滑动算法提供给各个不同应用的可滑动的控件直接调用。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象的生命周期管理、堆栈管理、线程管理、安全和异常的管理、以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维(three dimensional,3D)图形处理库(例如:OpenGL ES),二维(two dimensional,2D)图形引擎等。
表面管理器用于对电子设备的显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。二维图形引擎是二维绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含硬件驱动模块,例如显示驱动、摄像头驱动、音频驱动、传感器驱动等。通过内核层的传感器驱动,控制触摸传感器按照固定的周期采集触屏信号;显示驱动可以控制视图系统、表面管理器(surface manager)、图形处理库等,进行如图2中的(b)图所示的显示界面的绘制、渲染、合成的过程,并最终将画面在显示屏上显示,呈现给用户。
为了便于理解,本申请以下实施例将以具有图4和图5所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的控件滑动的方法进行具体阐述。
图6是本申请实施例提供的一例控件滑动的方法的示意性流程图。应理解,该方法600可以在如图4、图5所示的具有触摸屏等结构电子设备(例如手机、平板电脑等)中实现。如图6所示,该方法可以包括以下步骤:
601,电子设备接收用户在所述触摸屏的触摸操作,所述触摸操作的起始帧中包括第一触摸点,所述第一触摸点为所述触摸操作的起始触摸点,所述触摸操作的结束帧中包括第二触摸点,所述第二触摸点为所述触摸操作的结束触摸点;并根据所述第一触摸点的位置,确定目标控件。
具体地,步骤601的实现过程可以结合图5中的(b)图,用户执行触摸操作时,电子设备的硬件驱动模块可以驱动显示屏的触摸传感器按照固定的周期(例如16.67毫秒),对用户手指与屏幕接触时产生的触屏信号进行采样,再根据获取的触屏信号确定触摸操作的起始触摸点的位置坐标,以及该起始触摸点触及的目标控件。
还应理解,电子设备的显示界面上可能包括一个或多个控件,可以根据一个或多个控件中每一个控件的显示区域,用户的起始触摸点位于哪一个控件的显示区域,就将该控件确定为目标控件,其中,用户的起始触摸点可以位于目标控件的显示区域内的任意位置。
示例性的,如图1中的(a)图所示,当用户手指首次触及显示屏的A点时,起始帧中的A点即为起始触摸点,手机可以确定A点位于该“北京南站”控件10的显示区域内,进一步将该“北京南站”控件10确定为用户触及的目标控件,同时可以确定A点为起始触摸点。
电子设备显示屏的触摸传感器可以按照固定的周期,将检测到的触屏信号传递给多模输入模块,多模输入模块可以根据获取的触屏信号生成触控(touch)事件,并将该触控(touch)事件上传给AGP window,AGP window将该触控(touch)事件传递给手势识别模块。
可选地,该触控(touch)事件可以包括手指触摸点的坐标、触摸状态等参数。其中,根据相邻两帧是否都检测到该触屏信号,将该触控(touch)事件的触摸状态分为:
(1)DOWN事件,即相邻两帧中前一帧未检测到触屏信号,后一帧检测到触屏信号;
(2)MOVE事件,即相邻两帧中前后两帧都检测到触屏信号;
(3)UP事件,即相邻两帧中前一帧检测到触屏信号,后一帧未检测到触屏信号。
应理解,每一个触摸操作都是从DOWN事件开始,经过一系列MOVE事件,直到检测到UP事件结束。在本申请实施例中,触摸操作也包括一帧DOWN事件,连续多帧的MOVE事件,直到检测到一帧UP事件结束,将检测到该DOWN事件的帧定义为“触摸操作的起始帧”,将检测到该UP事件的帧定义为“触摸操作的结束帧”,“触摸操作的起始帧”和“触摸操作的起始帧”之间包括连续多帧。
示例性的,结合图2中的(a)图,当用户开始执行触摸操作(触摸操作)时,以检测到DOWN事件的画面帧可以为第1帧,即本申请实施例定义的“触摸操作的起始帧”。且第1帧中该触摸操作的触摸点为A点,手机可以获取A点的位置坐标。第2帧至第7帧都检测到触屏信号,即第2帧至第7帧都检测MOVE事件,且可以确定MOVE事件对应的每一帧中手指触摸点的位置坐标。
通过上述过程,电子设备的手势识别模块可以获取该触摸操作对应的触控(touch)事件,即确定连续多帧中检测到的DOWN事件、和/或MOVE事件、和/或UP事件,以及获取每一帧中手指触摸点的位置坐标。
602,电子设备的手势识别模块判断所述触摸操作是否是滑动操作。
应理解,电子设备的手势识别模块中可以包括多种不同的手势识别器,例如单击手势识别器、滑动手势识别器、多指缩放手势识别器等,不同的手势识别器中存储了多种不同手势的判定条件。当电子设备的手势识别模块获取该触控(touch)事件之后,可以根据不同的判定规则将触摸操作判定为其中的一种手势。
示例性的,滑动手势识别器可以存储有滑动操作的判定条件,当获取的该触控(touch)事件满足滑动操作的判定规则时,可以将当前的触摸操作确定为滑动操作。
一种可能的实现方式中,电子设备的手势识别模块可以根据前述介绍的2个条件判断该触摸操作是滑动操作,具体包括:
(1)检测到一个DOWN事件和一个或多个MOVE事件;
(2)以检测到的DOWN事件的画面帧为触摸操作的起始帧,触摸操作的起始帧之后的连续多帧中的每一帧都检测到触屏信号,即用户手指没有离开触摸屏,且连续多帧的某一帧中用户的手指触摸点和起始帧中的起始触摸点A的位移大于或等于滑动响应阈值(24px)。
应理解,上述条件(1)中还可以进一步包括一个UP事件,UP事件可以表示该滑动操作的终止,即UP事件的帧为“触摸操作的结束帧”,该“触摸操作的结束帧”中用户手指触摸点是滑动操作的滑动轨迹的结束位置,本申请实施例主要关注检测到UP事件之前的滑动过程,后续对此不再赘述。
当同时满足上述2个条件时,电子设备的手势识别模块可以将当前的用户执行的触摸操作判断为滑动操作,且进一步调用手势识别模块中滑动手势识别器存储的控件滑动的方法,即根据后续步骤确定目标控件的滑动过程。
应理解,滑动手势识别器中内置有控件滑动算法,例如本申请后续将介绍的“平滑补偿算法”,并开放接口,可以将内置有控件滑动算法提供给各个不同应用的可滑动的控件直接调用,后续不再赘述。
另一种可能的实现方式中,步骤602中,从所述触摸操作的起始帧开始,至少一帧中没有检测到用户的触摸点,和/或在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值时,确定所述触摸操作不是所述滑动操作。
当电子设备的手势识别模块判断所述触摸操作不是滑动操作时,进入步骤608:电子设备的手势识别模块判断所述触摸操作为单击等其他操作,并进入对应的处理流程。
换言之,当电子设备的手势识别模块判断所述触摸操作不是滑动操作时,不会调用本申请实施例滑动手势识别器中内置的控件滑动算法,而进入其他手势识别器或者其他手势的响应过程。示例性的,当电子设备的手势识别模块判断所述触摸操作是单击手势时,调用单击手势识别器的算法,并响应该单击手势,本申请实施例对滑动操作之外的其他过程不作赘述。
下面将重点介绍步骤602中,电子设备的手势识别模块判断触摸操作为滑动操作时,通过调用滑动手势识别器中内置的控件滑动算法,确定控件滑动的过程。
603,当所述触摸操作是滑动操作时,根据所述滑动响应阈值,确定临界帧,所述临界帧中包括第三触摸点,与所述临界帧相邻的下一帧中包括第四触摸点,其中,在所述触摸操作的滑动方向上,所述第三触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值,且所述第四触摸点和所述第一触摸点的距离大于所述滑动响应阈值。
换言之,本申请实施例可以将检测到目标控件开始滑动的画面帧相邻的前一帧确定为该“临界帧”,在“临界帧”内,手指触摸点相对于起始帧中手指触摸点A点的滑动位移小于或等于“滑动响应阈值”,目标控件没有开始滑动,即目标控件相对于起始帧中位置的滑动位移等于0,且在“临界帧”的下一帧内,目标控件开始滑动,即目标控件相对于起始帧中位置的滑动位移大于0。
图7是本申请实施例提供的一例手指触摸点和目标控件的滑动过程的示意图。
示例性的,如图7所示,在第1帧(触摸操作的起始帧),检测到用户手指触及该目标控件并准备开始执行滑动操作,手机根据检测的触屏信号,确定第1帧(触摸操作的起始帧)内发生了DOWN事件,用户手指触摸点的起始位置为A点(即第一触摸点),A点的位置对应Y轴的0px,假设滑动响应阈值为24px。
手指开始沿着黑色实心箭头所示的竖直向下的方向滑动,例如在第2帧,用户手指滑动到B点,手机检测到MOVE事件。第1帧的手指触摸点A点到第2帧的手指触摸点B点的滑动位移为d2,d2<24px,目标控件(例如“北京南站”控件10)的显示位置保持不变,不跟随用户的手指滑动。
示例性的,手指沿着黑色实心箭头(竖直向下)所示的方向继续滑动,假设在第5帧中,手指触摸点为C点,在第6帧中,手指触摸点为D点,在第5帧中,手指触摸点C点与起始位置A点之间的距离d5≤24px,即手指触摸点的位移d5小于或等于滑动响应阈值。且在第6帧中,手指触摸点D点与起始位置A点之间的距离d6>24px,即手指触摸点的位移d6大于滑动响应阈值。
在该场景中,第5帧中该目标控件未开始滑动,滑动位移S5=0,且在第6帧中该目标控件开始滑动,因此,根据前述定义,可以将第5帧确定为“临界帧”。临界帧(第5帧)中的C点可以理解为“临界点(即第三触摸点)”,从临界帧(第5帧)相邻的下一帧第6帧开始,目标控件沿着黑色实心箭头所示的滑动方向滑动。
604,根据所述第三触摸点和所述第一触摸点在所述滑动方向上的距离和预设常数N,计算N帧中的每一帧的位移修正量,N大于1且小于或等于所述滑动响应阈值。
应理解,目标控件在临界帧的下一帧开始滑动,因此,在滑动操作的滑动方向上,临界帧(第5帧)的触摸点C点和滑动操作起始帧的触摸点A点之间的距离即为目标控件的滑动位移S和手指触摸点的滑动位移d之间的位移差值△。
一种可能的实现方式中,首先,可以根据临界帧(第5帧)中手指触摸点C点(即第三触摸点)相对于触摸操作的起始帧中起始位置A点(即第一触摸点)的滑动位移d5确定目标控件的滑动位移S和手指触摸点的滑动位移d之间的位移差值△,根据以下公式(3)计算得到:
Δ=YC-YA=d5 公式(3)
应理解,在本申请实施例中,以Y轴方向的滑动操作为例,假设该滑动操作在水平方向上位移为0,因此仅以Y轴坐标标识手指触摸点的位置坐标或者滑动位移,且以滑动操作起始帧(第1帧)的触摸点A点为起始位置,假设YA=0。例如对于第5帧,手指触摸点C点在Y轴方向上的滑动位移记为YC,这里对其他每一帧的手指触摸点的坐标和位移不再赘述。
其次,可以再根据该位移差值△确定临界帧之后的N帧中每一帧的位移修正量,并根据每一帧的位移修正量计算临界帧之后的每一帧中目标控件相对于前一帧的实际滑动位移。
可选地,在临界帧之后的N帧中,目标控件在每一帧的位移修正量可以依次记作a1、a2、a3、……aN,且a1、a2、a3、……aN具有以下公式(4)所示的关系:
a1+a2+a3+......+aN=Δ=YC-YA=d5 公式(4)
应理解,电子设备显示屏上位移最小的计量单位为1px,又因为位移差值△≤24px,因此预设常数N≤△,即N≤24。
可选地,N的取值可以为24、12、6、4等,保证每一帧中位移修正的像素值为整数。示例性的,当N=24时,可以理解为:在临界帧(第5帧)之后的连续24帧(第6帧-第29帧)内,将位移差值△全部补偿,在第29帧实现目标控件的总滑动位移S和手指触摸点的总滑动位移d相等,该目标控件就可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步。
可选地,当N取最大值,即N=24时,从第6帧至第29帧的每一帧中匀速补偿该位移修正量a,可以在第29帧实现目标控件的总滑动位移S等于手指触摸点的总滑动位移d,该过程总耗时T=24×16.67毫秒=0.4秒,可以在较短时间内实现目标控件的平滑跟手。
605,目标控件从所述临界帧相邻的下一帧开始在所述滑动方向上滑动,且在所述目标控件开始滑动的连续N帧中,每一帧的滑动位移为所述每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离,加上所述每一帧的位移修正量之后的和。
具体地,结合图7的第6帧至第(5+N)帧,每一帧中目标控件相对于前一帧的实际滑动位移s的计算过程列举如下:
……
根据上述计算过程,从第1帧至第(5+N)帧的过程中,在第(5+N)帧,目标控件的总滑动位移S为目标控件开始滑动后,每一帧中目标控件的实际滑动位移之和,即从第6帧至第5+N帧,目标控件的总滑动位移S为:
用户手指触摸点从起始帧的A点到第5+N帧的F点,手指总滑动位移d5+N=YF-YA=YF,因此,在第(5+N)帧,实现目标控件的总滑动位移S和手指触摸点的总滑动位移d5+N相等。
通过上述实现过程,从第6帧开始至第(5+N)帧,可以匀速地将位移差值△全部补偿。换言之,可以在临界帧(第5帧)之后的N帧中,匀速地将位移差值△全部补偿。
606,目标控件在连续N帧之后继续在所述滑动方向上滑动,且在连续N帧之后至所述触摸操作的结束帧中,每一帧的滑动位移为所述每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离。
应理解,在第(5+N)帧,目标控件已经完全跟手,因此在滑动操作的第(6+N)帧至滑动操作的结束帧内,目标控件在每一帧的滑动位移都为用户手指触摸点相对于前一帧的触摸点的滑动位移,直到该滑动过程结束,此处不再赘述。
607,从所述触摸操作的起始帧至所述触摸操作的结束帧,电子设备的视图系统等完成每一帧画面的绘制、渲染、合成,并显示相应的界面。
在本申请实施例中,可以将上述算法过程称为“平滑补偿算法”。通过调用滑动手势识别器内置的“平滑补偿算法”,可以实现在临界帧(第5帧)之后的第N帧,相对于起始位置A点,目标控件的总滑动位移S和手指触摸点的总滑动位移d相等,该目标控件就可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步,该目标控件完全跟手。
此外,将位移差值△分配到N帧中进行补偿,可以使得目标控件平缓的追赶手指触摸点,且由于△≤24,N帧取最大值24时最长的耗时为0.4秒,即在较短时间内就可以实现目标控件的平滑跟手,提高了用户的使用体验。
又一种可能的实现方式中,电子设备的手势识别模块中滑动手势识别器判定当前的触摸操作为滑动操作时,可以调用滑动手势识别器中的该“平滑补偿算法”,将触摸传感器实际检测到的临界帧(第5帧)之后的N帧中每一帧的手指触摸点的位置坐标,转化为补偿了位移修正量后的新的位置坐标,并将该新的位置坐标传递给目标控件,该目标控件可以根据该新的位置坐标,确定目标控件在每一帧的滑动位移,进而刷新目标控件的显示位置,再由电子设备的显示屏模块进行图像的绘制、渲染、合成,最终按照目标控件的新的显示位置在显示屏上显示,呈现给用户。
示例性的,以图7的第6帧为例,电子设备的触摸传感器检测到手指触摸点D在Y轴上的坐标为YD,滑动手势识别器将该第6帧的手指触摸点D的坐标转换为并将传递给目标控件,该目标控件可以根据该新的位置坐标确定目标控件在第6帧相对于第5帧的滑动位移即目标控件在第6帧相对于第5帧的滑动位移为
依次类推,该目标控件就可以在临界帧(第5帧)之后的N帧中,基于补偿了位移修正量后的新的位置坐标进行滑动,并在临界帧(第5帧)之后的第N帧中,实现目标控件的平滑跟手,为了简便,这里对其他帧中的实现过程不再赘述。
另一种可能的实现方式中,N帧中的每一帧的位移修正量可以不相同。步骤604中,滑动手势识别器根据该位移差值△确定位移修正量的过程中,在临界帧之后的N帧中,每一帧的位移修正量a1、a2、a3、……aN不相等,但是仍然满足公式(4)所示的关系。
可选地,在临界帧之后的N帧中,目标控件在每一帧的位移修正量a1、a2、a3、……aN可以以一定的变化规律进行变化,例如等差数列等变化规律,本申请实施例对此不作限定。
示例性的,假设临界帧为第5帧,目标控件在第6帧中位移修正量a1=1px,第7帧中位移修正量a2=2px,第8帧中位移修正量a3=3px,……。相应地,再根据每一帧的位移修正量计算该帧中目标控件相对于前一帧的实际滑动位移s,例如,该目标控件在第6帧中实际滑动位移s6=dx6+a1=dx6+1,第7帧中实际滑动位移s7=dx7+a2=dx7+2,第8帧中实际滑动位移s8=dx8+a3=dx8+3……,为了简便,此处不再一一赘述。
通过上述方法,在用户执行滑动操作的过程中,电子设备可以根据触摸信号检测用户手指触及的目标控件,以及滑动操作的过程的每一帧中手指触摸点的位置和滑动位移。再根据相邻两帧中,前一帧手指触摸点的滑动位移d小于或等于滑动响应阈值且后一帧手指触摸点的滑动位移d大于滑动响应阈值,将该相邻两帧中的前一帧确定为临界帧,根据临界帧中手指触摸点的位置计算位移修正量;进而控制目标控件从临界帧的下一帧开始响应滑动,并在该目标控件开始响应滑动的预设数量的多帧中,按照位移修正量对每一帧中目标控件相对于前一帧的滑动位移进行补偿,使得目标控件在滑动过程中,可以平缓匀速的跟上用户手指触摸点的滑动轨迹。该方法可以提高滑动操作过程中目标控件的跟手性,并避免一次性补偿目标控件和手指触摸点之间的位移差值△导致的首帧跳变,给用户造成跳变的视觉感受,提高了用户的使用体验。
此外,通过上述计算过程确定了目标控件在“临界帧”之后的N帧中每一帧相对于前一帧的实际滑动位移,以及“临界帧”之后的N+1帧至滑动操作的结束帧中每一帧相对于前一帧的滑动位移,电子设备的手势识别模块的滑动手势识别器还可以输出滑动速度,即确定目标控件在该滑动过程中的滑动速度。
一种可能的实现方式中,所述目标控件从与所述临界帧的下一帧开始滑动,且所述目标控件在滑动过程中的滑动速度为用户执行所述滑动操作的过程中手指触摸点的滑动速度。
可选地,滑动手势识别器可以根据预设时长内用户手指触摸点的滑动速度确定目标控件的滑动速度。例如,滑动手势识别器可以以200毫秒为单位,根据用户手指触摸点的滑动位移计算平均滑动速度。
应理解,这里预设时长(例如200毫秒)内,以用户手指触摸点的实际位置坐标计算滑动速度,换言之,滑动手势识别器在计算滑动速度时,直接根据触摸传感器采集上报的手指触摸点的位置坐标来计算,不需要按照上述过程对手指触摸点的位置坐标进行修正或补偿。
示例性的,以图7的第1帧至第6帧为例,电子设备的触摸传感器检测到手指触摸点D在Y轴上的坐标为YD,第1帧中手指触摸点A在Y轴上的坐标为YA=0,滑动手势识别器根据以下公式(7)计算第1帧至第6帧对应的时段内,手指触摸点的滑动速度:
其中,t为手指触摸点从A点到D点的滑动时间。可选地,电子设备显示屏上一帧画面的显示时间16.67毫秒,该滑动时间t为第1帧至第6帧显示总时间16.67×6=100.2毫秒,本申请实施例对此不作限定。
通过上述计算过程,滑动手势识别器可以输出目标控件在预设时段内的平均滑动速度,并将该平均滑动速度传递给目标控件,该目标控件可以根据以手指触摸点相同的滑动速度进行滑动,避免了目标控件和手指触摸点滑动速度的偏差,提高了目标控件的跟手性。
另一种可能的实现方式中,目标控件从临界帧的下一帧开始滑动,且滑动速度可以完全同步于用户手指触摸点的滑动速度。例如,某连续多帧内,用户手指滑动快,目标控件就滑动快;某连续多帧内,用户手指滑动慢,目标控件就滑动慢,该方式可以保证目标控件的跟手滑行更贴手,提高用户的视觉体验。
综上所述,目标控件可以根据以上计算每一帧的滑动位移进行滑动,以响应用户的滑动操作过程。从第1帧至第(5+N)帧的过程中,在第(5+N)帧,目标控件的总滑动位移S等于用户手指触摸点的总滑动位移d,从第(5+N)帧以后,直到滑动操作的结束帧,检测到UP事件,目标控件都可以保持跟手滑行。
图8是本申请实施例提供的另一例手指触摸点和目标控件的滑动位移曲线图。如图8所示,黑色细实线为用户手指触摸点的滑动位移d的变化曲线,黑色粗实线为用户手指触及的目标控件的实际滑动位移S的变化曲线。
结合图8的滑动过程,假设在第5帧时,手指触摸点相对于起始位置A点的滑动位移d5小于滑动响应阈值(24px),在第6帧时,手指触摸点的滑动位移d6大于滑动响应阈值(24px),那么在第1帧-第5帧的过程中,目标控件的实际滑动位移为0。
在第6帧至第29帧的过程中,每一帧中目标控件的实际滑动位移补偿了位移修正量a后,手指触摸点的滑动位移d和目标控件的实际滑动位移S之间的差值逐渐缩小,直到第29帧差值为0,目标控件的实际滑动位移S等于手指触摸点的滑动位移d,即黑色细实线和黑色粗实线重合,实现该目标控件完全跟手,直到滑动操作结束。
综上所述,通过上述介绍的“平滑补偿算法”确定了目标控件在临界帧之后的N帧中每一帧的实际滑动位移,并根据用户手指触摸点的实际位置确定了目标控件的滑动速度,目标控件就可以在临界帧之后的N帧中,平缓地补偿了位移差值△。到第N帧,实现目标控件的总滑动位移S等于手指触摸点的总滑动位移d,该目标控件就可以跟随手指触摸点的滑动轨迹进行滑动,且和用户手指触摸点的滑动保持同步,即实现该目标控件完全跟手。
在目标控件跟随用户滑动轨迹进行滑动的过程中,该方法可以将手指触摸点的滑动位移和目标控件的滑动位移之间的位移差值△平均到N帧中的每一帧进行平缓地补偿,使得目标控件在滑动过程中,可以平缓匀速的跟上用户手指触摸点的滑动轨迹。该方法可以提高滑动操作过程中目标控件的跟手性,并避免一次性补偿目标控件和手指触摸点之间的位移差值△导致的首帧跳变,给用户造成跳变的视觉感受,提高了用户体验。此外,该过程总耗时T小于或等于0.4秒,可以在较短时间内实现目标控件的平滑跟手。
应理解,上述实施例以用户手指触摸点在一个方向上的滑动过程为例,介绍了本申请实施例提供的“平滑补偿算法”以及目标控件的滑动过程。对于用户执行的任意一个滑动操作,滑动方向可能不同,例如滑动方向可能为水平方向(平行于手机屏幕横向边框)、垂直方向(平行于手机屏幕竖直边框)、或者其他的任意方向,那么手指触摸点可能在水平方向、垂直方向、或者任意方向上都有滑动位移。
可选地,在本申请实施例中,电子设备的滑动手势识别器可以区分水平方向、垂直方向、或者任意方向上的滑动操作。对于水平方向上的滑动操作,也可以参照前述介绍的垂直方向上的“平滑补偿算法”和目标控件在垂直方向的滑动过程,确定目标控件在水平方向的滑动过程。
此外,对于任意方向上的滑动操作,可以按照用户滑动的方向,参照前述介绍的垂直方向上的“平滑补偿算法”和目标控件在垂直方向的滑动过程,确定目标控件在该任意方向上的滑动位移;或者,可以将用户滑动的任意方向分解到水平方向和垂直方向,分别确定目标控件在水平方向和垂直方向上的滑动位移,进而再根据水平方向和垂直方向上的滑动位移确定目标控件的显示位置。为了简便,这里不再赘述不同方向的控件滑动过程。
可选地,本申请实施例提供的控件滑动的方法不但可以应用于用户单手指的滑动操作,还可以应用于其他多指滑动类操作中。其中,多指滑动类操作可以包括多指缩放操作(例如双指缩放操作)、多指旋转操作、多指平移操作等。
示例性的,在双指缩放操作中,两个手指触摸点可以在不同方向的滑动且产生滑动位移,当两个手指触摸点的滑动位移大于或等于滑动响应阈值时,响应于两个手指触摸点的滑动,目标控件可以进行尺寸的缩放,该过程也涉及目标控件的跟手性,因此也可以按照本申请实施例介绍的控件滑动的方法,计算每一帧中该目标控件的滑动位移和滑动速度,实现平缓匀速地补偿该目标控件的滑动位移,提高目标控件在滑动过程中的跟手性。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,上述实施例中涉及的电子设备可以包括:显示单元、检测单元和处理单元。其中,显示单元、检测单元和处理单元相互配合,可以用于支持电子设备执行上述步骤,和/或用于本文所描述的技术的其他过程。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述视频播放的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理,例如,可以用于支持电子设备执行上述显示单元、检测单元和处理单元执行的步骤。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图1所示结构的设备。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的控件滑动的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的控件滑动的方法。
另外,本申请实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的控件滑动的方法。
其中,本申请实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种控件滑动的方法,其特征在于,所述方法包括:
电子设备接收用户在所述电子设备的触摸屏的触摸操作,所述触摸操作的起始帧中包括第一触摸点,所述第一触摸点为所述触摸操作的起始触摸点,所述触摸操作的结束帧中包括第二触摸点,所述第二触摸点为所述触摸操作的结束触摸点;
所述电子设备根据所述第一触摸点的位置,确定目标控件,所述目标控件包括列表控件、滚动视图控件、滑动控件、翻页控件中的任意一种;
所述电子设备根据滑动响应阈值,判断所述触摸操作是否是滑动操作;
所述电子设备当所述触摸操作是滑动操作时,根据所述滑动响应阈值,确定临界帧,所述临界帧中包括第三触摸点,与所述临界帧相邻的下一帧中包括第四触摸点,其中,在所述触摸操作的滑动方向上,所述第三触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值,且所述第四触摸点和所述第一触摸点的距离大于所述滑动响应阈值;
所述电子设备根据所述第三触摸点和所述第一触摸点在所述滑动方向上的距离和预设常数N,计算从所述临界帧相邻的下一帧开始的N帧中每一帧的位移修正量,N大于1且小于或等于所述滑动响应阈值;
所述电子设备控制所述目标控件从所述临界帧相邻的下一帧开始在所述滑动方向上滑动,且在所述目标控件开始滑动的连续所述N帧中,每一帧的滑动位移为所述每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离,加上所述每一帧的位移修正量之后的和;
所述电子设备控制所述目标控件在连续所述N帧之后继续在所述滑动方向上滑动,且在连续所述N帧之后至所述触摸操作的结束帧中,每一帧的滑动位移为所述每一帧的触摸点和相邻前一帧的触摸点在所述滑动方向上的距离。
2.根据权利要求1所述的方法,其特征在于,所述N帧中的每一帧的位移修正量之和等于所述第三触摸点和所述第一触摸点在所述滑动方向上的距离。
3.根据权利要求1所述的方法,其特征在于,所述N帧中的每一帧的位移修正量相同,所述根据所述第三触摸点和所述第一触摸点在所述滑动方向上的距离,计算N帧中的每一帧的位移修正量,包括:
所述第三触摸点和所述第一触摸点在所述滑动方向上的距离,除以所述N,得到每一帧的平均位移修正量。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述目标控件从与所述临界帧相邻的下一帧开始滑动,且所述目标控件在滑动过程中的滑动速度为用户执行所述触摸操作的过程中手指触摸点的滑动速度。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述电子设备根据滑动响应阈值,判断所述触摸操作是否是滑动操作,包括:
所述电子设备从所述触摸操作的起始帧开始,每一帧中检测到用户的触摸点,且在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离大于所述滑动响应阈值时,确定所述触摸操作是所述滑动操作;或者,
所述电子设备从所述触摸操作的起始帧开始,至少一帧中没有检测到用户的触摸点,和/或在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值时,确定所述触摸操作不是所述滑动操作。
6.根据权利要求4所述的方法,其特征在于,所述电子设备根据滑动响应阈值,判断所述触摸操作是否是滑动操作,包括:
所述电子设备从所述触摸操作的起始帧开始,每一帧中检测到用户的触摸点,且在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离大于所述滑动响应阈值时,确定所述触摸操作是所述滑动操作;或者,
所述电子设备从所述触摸操作的起始帧开始,至少一帧中没有检测到用户的触摸点,和/或在所述触摸操作的方向上,检测到所述用户的触摸点和所述第一触摸点的距离小于或等于所述滑动响应阈值时,确定所述触摸操作不是所述滑动操作。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述触摸屏的显示界面上包括一个或多个控件,所述电子设备根据所述第一触摸点的位置,确定目标控件,包括:
所述电子设备根据所述第一触摸点的位置和所述一个或多个控件中每一个控件的显示区域,确定所述目标控件,所述第一触摸点位于所述目标控件的显示区域内的任意位置。
8.根据权利要求4所述的方法,其特征在于,所述触摸屏的显示界面上包括一个或多个控件,所述电子设备根据所述第一触摸点的位置,确定目标控件,包括:
所述电子设备根据所述第一触摸点的位置和所述一个或多个控件中每一个控件的显示区域,确定所述目标控件,所述第一触摸点位于所述目标控件的显示区域内的任意位置。
9.根据权利要求5所述的方法,其特征在于,所述触摸屏的显示界面上包括一个或多个控件,所述电子设备根据所述第一触摸点的位置,确定目标控件,包括:
所述电子设备根据所述第一触摸点的位置和所述一个或多个控件中每一个控件的显示区域,确定所述目标控件,所述第一触摸点位于所述目标控件的显示区域内的任意位置。
10.根据权利要求6所述的方法,其特征在于,所述触摸屏的显示界面上包括一个或多个控件,所述电子设备根据所述第一触摸点的位置,确定目标控件,包括:
所述电子设备根据所述第一触摸点的位置和所述一个或多个控件中每一个控件的显示区域,确定所述目标控件,所述第一触摸点位于所述目标控件的显示区域内的任意位置。
11.根据权利要求1至3中任一项所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
12.根据权利要求4所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
13.根据权利要求5所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
14.根据权利要求6所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
15.根据权利要求7所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
16.根据权利要求8所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
17.根据权利要求9所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
18.根据权利要求10所述的方法,其特征在于,所述滑动操作是用户通过单手指执行的滑动操作;或者,所述滑动操作是用户通过至少两个手指执行的滑动操作。
19.一种电子设备,其特征在于,包括:
触摸屏;
一个或多个处理器;
一个或多个存储器;
安装有多个应用程序的模块;
所述存储器存储有一个或多个程序,当所述一个或者多个程序被所述处理器执行时,使得所述电子设备执行权利要求1至18中任一项所述的方法。
20.一种可读存储介质,其特征在于,所述可读存储介质存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至18中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210432178.8A CN114968059B (zh) | 2021-05-13 | 2021-08-02 | 一种控件滑动的方法及电子设备 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021105240675 | 2021-05-13 | ||
CN202110524067 | 2021-05-13 | ||
CN202110884578.8A CN115421642A (zh) | 2021-05-13 | 2021-08-02 | 一种控件滑动的方法及电子设备 |
CN202210432178.8A CN114968059B (zh) | 2021-05-13 | 2021-08-02 | 一种控件滑动的方法及电子设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110884578.8A Division CN115421642A (zh) | 2021-05-13 | 2021-08-02 | 一种控件滑动的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968059A CN114968059A (zh) | 2022-08-30 |
CN114968059B true CN114968059B (zh) | 2023-06-27 |
Family
ID=83004390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210432178.8A Active CN114968059B (zh) | 2021-05-13 | 2021-08-02 | 一种控件滑动的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968059B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404044A (zh) * | 2011-10-27 | 2012-04-04 | 东方通信股份有限公司 | 基于tdma技术的数字无线集群通信系统中对上行信号的一种帧同步检测方法及帧同步检测装置 |
CN109416613A (zh) * | 2016-07-15 | 2019-03-01 | 爱迪德技术有限公司 | 获取用户输入 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5595710A (en) * | 1995-05-25 | 1997-01-21 | Intelligent Medical Imaging, Inc. | Medical slide holder |
US8686960B2 (en) * | 2010-04-23 | 2014-04-01 | Lester F. Ludwig | Piecewise-linear and piecewise-affine transformations for high dimensional touchpad (HDTP) output decoupling and corrections |
CN109669567B (zh) * | 2017-10-13 | 2020-10-16 | 华为技术有限公司 | 一种控制方法和终端 |
US11216116B2 (en) * | 2017-10-13 | 2022-01-04 | Huawei Technologies Co., Ltd. | Control method and terminal |
CN112306301B (zh) * | 2020-11-02 | 2024-06-11 | 北京小米移动软件有限公司 | 触控数据的处理方法、装置、设备及存储介质 |
-
2021
- 2021-08-02 CN CN202210432178.8A patent/CN114968059B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404044A (zh) * | 2011-10-27 | 2012-04-04 | 东方通信股份有限公司 | 基于tdma技术的数字无线集群通信系统中对上行信号的一种帧同步检测方法及帧同步检测装置 |
CN109416613A (zh) * | 2016-07-15 | 2019-03-01 | 爱迪德技术有限公司 | 获取用户输入 |
Also Published As
Publication number | Publication date |
---|---|
CN114968059A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113645351B (zh) | 应用界面交互方法、电子设备和计算机可读存储介质 | |
WO2021000881A1 (zh) | 一种分屏方法及电子设备 | |
CN111738122B (zh) | 图像处理的方法及相关装置 | |
CN110119296B (zh) | 切换父页面和子页面的方法、相关装置 | |
CN111176506A (zh) | 一种屏幕显示方法及电子设备 | |
EP4012544B1 (en) | Split-screen processing method and terminal device | |
US20240176628A1 (en) | Display method for card component, graphical user interface, and related apparatus | |
CN113994317A (zh) | 一种用户界面布局方法及电子设备 | |
CN113132526B (zh) | 一种页面绘制方法及相关装置 | |
CN116069212B (zh) | 一种应用卡片的快速查看方法、电子设备及存储介质 | |
CN112068907A (zh) | 一种界面显示方法和电子设备 | |
CN113746961A (zh) | 显示控制方法、电子设备和计算机可读存储介质 | |
WO2022002213A1 (zh) | 翻译结果显示方法、装置及电子设备 | |
CN116828100A (zh) | 蓝牙音频播放方法、电子设备及存储介质 | |
CN114205457B (zh) | 一种移动用户界面元素的方法、电子设备及存储介质 | |
CN115904160A (zh) | 一种图标移动方法、相关图形界面及电子设备 | |
WO2024067551A1 (zh) | 界面显示方法及电子设备 | |
CN115421642A (zh) | 一种控件滑动的方法及电子设备 | |
CN114968059B (zh) | 一种控件滑动的方法及电子设备 | |
CN114356196A (zh) | 一种显示方法及电子设备 | |
CN116991274B (zh) | 一种上滑动效异常处理方法及电子设备 | |
CN117270720B (zh) | 一种页面显示方法及电子设备 | |
CN116204093B (zh) | 一种页面显示方法及电子设备 | |
CN116266159B (zh) | 一种缺页异常处理方法和电子设备 | |
WO2024046010A1 (zh) | 一种界面显示方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |