CN117806744A - 控件显示方法及电子设备 - Google Patents
控件显示方法及电子设备 Download PDFInfo
- Publication number
- CN117806744A CN117806744A CN202211206525.1A CN202211206525A CN117806744A CN 117806744 A CN117806744 A CN 117806744A CN 202211206525 A CN202211206525 A CN 202211206525A CN 117806744 A CN117806744 A CN 117806744A
- Authority
- CN
- China
- Prior art keywords
- window
- screen
- system control
- application
- electronic device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 122
- 230000015654 memory Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 30
- 239000000725 suspension Substances 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 239000010410 layer Substances 0.000 description 50
- 238000007726 management method Methods 0.000 description 32
- 230000000694 effects Effects 0.000 description 24
- 238000004891 communication Methods 0.000 description 23
- 238000007667 floating Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 14
- 210000000988 bone and bone Anatomy 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000001133 acceleration 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
- 238000009877 rendering Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000036772 blood pressure Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002138 osteoinductive effect Effects 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
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/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
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供了一种控件显示方法及电子设备。该方法包括:电子设备的屏幕上显示窗口化应用,响应于用户对该窗口化应用的操作,电子设备在窗口化应用的显示区域内显示系统控件,其中该系统控件的实际显示位置和实际显示大小按照窗口的大小和位置进行跟随。上述技术方案中,系统控件的实际显示位置和实际显示大小适配于窗口化应用,避免了系统控件按照默认显示位置和默认显示大小显示时超出窗口的显示区域的问题,从而提升了用户体验。
Description
技术领域
本申请实施例涉及电子设备技术领域,并且更具体地,涉及一种控件显示方法及电子设备。
背景技术
控件是每个应用程序都必不可少的一部分,通过控件的组合,可以形成一个个精美的界面。一般地,应用程序所使用的控件可以包括系统控件和自定义控件,其中系统控件是系统定制好的,可以直接被应用调用。
然而,当应用为窗口化应用时,例如应用悬浮显示或者分屏显示,应用在调用系统控件时会出现控件超出窗口的显示区域的问题,导致用户无法分辨该系统控件是由哪个应用弹出的,非常影响用户体验。
发明内容
本申请实施例提供一种控件显示方法及电子设备,能够使窗口化应用所调用的系统控件适配于窗口化应用,避免了系统控件超出窗口的显示区域的问题,提升了用户体验。
第一方面,提供了一种控件显示方法,应用于包括屏幕的电子设备,所述方法包括:显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积;响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件;其中,所述第一系统控件的实际显示位置和实际显示大小是根据所述第一系统控件的默认显示位置和默认显示大小以及所述第一窗口相对于所述屏幕的缩放比例确定的,所述第一系统控件的实际显示位置和实际显示大小适配于所述第一窗口,所述第一系统控件的默认显示位置和默认显示大小适配于所述屏幕。
本申请实施例中,第一应用为窗口化应用,当第一应用调用第一系统控件时,第一系统控件按照第一窗口的大小、位置进行跟随,其大小、位置适配于第一窗口。这样可以使得第一系统控件在第一窗口的显示区域内显示,避免了第一应用在调用第一系统控件时第一系统控件超出第一窗口的显示区域的问题,提升了用户体验。
结合第一方面,在一种可能的实现方式中,所述第一窗口相对于所述屏幕的缩放比例为第一比值或第二比值,其中所述第一比值为所述第一窗口的长边长度与所述屏幕的长边长度之间的比值,所述第二比值为所述第一窗口的短边长度与所述屏幕的短边长度之间的比值。
第一窗口的长边长度、屏幕的长边长度、第一窗口的短边长度以及屏幕的短边长度可以直接获取到,由此计算出来的缩放比例简单快捷。
结合第一方面,在一种可能的实现方式中,在所述第一比值与所述第二比值不相等的情况下,所述第一窗口相对于所述屏幕的缩放比例为所述第一比值和所述第二比值中的较小值。
当第一窗口相对于屏幕的缩放比例为第一比值和第二比值中的较小值时,可以保证第一系统控件跟随第一窗口时不超出第一窗口的显示区域。
结合第一方面,在一种可能的实现方式中,所述第一系统控件的实际显示大小包括实际宽度和实际高度;所述第一系统控件的默认显示大小包括预设宽度和预设高度;其中所述实际宽度为所述预设宽度与所述缩放比例的乘积,所述实际高度为所述预设高度与所述缩放比例的乘积。
通过第一系统控件的默认显示大小以及缩放比例,可以确定第一系统控件的实际显示大小。第一系统控件按照同样的缩放比例缩小,可以保证第一系统控件可以在第一窗口的显示区域内显示,而不会超出第一窗口的显示区域。
结合第一方面,在一种可能的实现方式中,所述第一系统控件的实际显示位置包括以所述第一窗口的左上角为原点的第一横坐标和第一纵坐标;所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;其中所述第一横坐标为所述第二横坐标与所述缩放比例的乘积,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积。
通过第一系统控件的默认显示位置以及缩放比例,可以确定第一系统控件的实际显示位置。第一系统控件的位置跟随窗口变化,可以保证第一系统控件可以在第一窗口的显示区域内显示,而不会超出第一窗口的显示区域。
结合第一方面,在一种可能的实现方式中,所述第一系统控件的实际显示位置包括以所述屏幕的左上角为原点的第一横坐标和第一纵坐标;所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;所述第一窗口的左上角的坐标包括以所述屏幕的左上角为原点的第三横坐标和第三纵坐标;其中,所述第一横坐标为所述第二横坐标与所述缩放比例的乘积再加上所述第三横坐标后得到的值,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积再加上所述第三纵坐标后得到的值。
第一系统控件、第一窗口以及屏幕都在同一坐标系下,无需进行坐标系的转换。
结合第一方面,在一种可能的实现方式中,在所述响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件之前,所述方法还包括:接收所述用户对所述第一应用的所述操作;根据所述操作确定所述第一应用调用所述第一系统控件;根据所述第一窗口的尺寸确定所述第一应用为窗口化应用;根据所述第一窗口的尺寸和所述屏幕的尺寸确定所述缩放比例;基于所述缩放比例,对所述第一系统控件的默认显示位置和默认显示大小进行更新,得到所述第一系统控件的实际显示位置和实际显示大小。
结合第一方面,在一种可能的实现方式中,所述第一系统控件为以下控件中的任一种:消息提示框,系统对话框,系统警告提示框,错误弹框,悬浮框,输入法窗口,系统状态栏。
结合第一方面,在一种可能的实现方式中,所述第一系统控件的Z序值大于或等于2000且小于或等于2999。
第一系统控件的窗口类型为系统窗口,其层级范围为2000-2999。
结合第一方面,在一种可能的实现方式中,所述第一窗口为悬浮窗口或分屏窗口。
第二方面,提供了一种控件显示方法,应用于包括屏幕的电子设备,所述方法包括:显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积,所述第一窗口与第一虚拟屏幕对应,其中所述第一虚拟屏幕的大小和位置与所述第一窗口的大小和位置一致;响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件,其中所述第一系统控件按照默认显示位置和默认显示大小显示,所述第一系统控件的默认显示位置和默认显示大小适配于所述第一虚拟屏幕。
本申请实施例中,在创建第一应用时,可以相应创建一个虚拟屏幕,即第一虚拟屏幕。这样,窗口化应用可以基于该第一虚拟屏幕实现,相应地,系统控件可以基于第一虚拟屏幕的大小进行适配,而不是基于电子设备的实际屏幕大小进行适配。这样,系统控件的默认显示位置和默认显示大小适配于第一虚拟屏幕,也即适配于第一窗口。因此,系统控件不会超出第一窗口的显示区域,从而可以提升用户体验。
结合第二方面,在一种可能的实现方式中,所述方法还包括:创建所述第一虚拟屏幕。
第三方面,提供了一种电子设备,包括屏幕和显示单元,所述显示单元用于:显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积;响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件;其中,所述第一系统控件的实际显示位置和实际显示大小是根据所述第一系统控件的默认显示位置和默认显示大小以及所述第一窗口相对于所述屏幕的缩放比例确定的,所述第一系统控件的实际显示位置和实际显示大小适配于所述第一窗口,所述第一系统控件的默认显示位置和默认显示大小适配于所述屏幕。
结合第三方面,在一种可能的实现方式中,所述第一窗口相对于所述屏幕的缩放比例为第一比值或第二比值,其中所述第一比值为所述第一窗口的长边长度与所述屏幕的长边长度之间的比值,所述第二比值为所述第一窗口的短边长度与所述屏幕的短边长度之间的比值。
结合第三方面,在一种可能的实现方式中,在所述第一比值与所述第二比值不相等的情况下,所述第一窗口相对于所述屏幕的缩放比例为所述第一比值和所述第二比值中的较小值。
结合第三方面,在一种可能的实现方式中,所述第一系统控件的实际显示大小包括实际宽度和实际高度;所述第一系统控件的默认显示大小包括预设宽度和预设高度;其中所述实际宽度为所述预设宽度与所述缩放比例的乘积,所述实际高度为所述预设高度与所述缩放比例的乘积。
结合第三方面,在一种可能的实现方式中,所述第一系统控件的实际显示位置包括以所述第一窗口的左上角为原点的第一横坐标和第一纵坐标;所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;其中所述第一横坐标为所述第二横坐标与所述缩放比例的乘积,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积。
结合第三方面,在一种可能的实现方式中,所述第一系统控件的实际显示位置包括以所述屏幕的左上角为原点的第一横坐标和第一纵坐标;所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;所述第一窗口的左上角的坐标包括以所述屏幕的左上角为原点的第三横坐标和第三纵坐标;其中,所述第一横坐标为所述第二横坐标与所述缩放比例的乘积再加上所述第三横坐标后得到的值,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积再加上所述第三纵坐标后得到的值。
结合第三方面,在一种可能的实现方式中,所述电子设备还包括处理单元,在所述显示单元在所述第一窗口的显示区域内显示第一系统控件之前,所述处理单元用于:接收所述用户对所述第一应用的所述操作;根据所述操作确定所述第一应用调用所述第一系统控件;根据所述第一窗口的尺寸确定所述第一应用为窗口化应用;根据所述第一窗口的尺寸和所述屏幕的尺寸确定所述缩放比例;基于所述缩放比例,对所述第一系统控件的默认显示位置和默认显示大小进行更新,得到所述第一系统控件的实际显示位置和实际显示大小。
结合第三方面,在一种可能的实现方式中,所述第一系统控件为以下控件中的任一种:消息提示框,系统对话框,系统警告提示框,错误弹框,悬浮框,输入法窗口,系统状态栏。
结合第三方面,在一种可能的实现方式中,所述第一系统控件的Z序值大于或等于2000且小于或等于2999。
结合第三方面,在一种可能的实现方式中,所述第一窗口为悬浮窗口或分屏窗口。
第四方面,提供了一种电子设备,包括屏幕和显示单元,所述显示单元用于:显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积,所述第一窗口与第一虚拟屏幕对应,其中所述第一虚拟屏幕的大小和位置与所述第一窗口的大小和位置一致;响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件,其中所述第一系统控件按照默认显示位置和默认显示大小显示,所述第一系统控件的默认显示位置和默认显示大小适配于所述第一虚拟屏幕。
结合第四方面,在一种可能的实现方式中,所述电子设备还包括处理单元,用于创建所述第一虚拟屏幕。
第五方面,提供了一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面以及第一方面的任一种可能实现方式中所涉及的行为的功能,或者具有实现上述第二方面以及第二方面的任一种可能实现方式中所涉及的行为的功能。
该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,显示模块或单元、获取模块或单元、接收模块或单元、处理模块或单元等。
第六方面,提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行上述第一方面以及第一方面的任一种可能实现方式中的方法,或者执行上述第二方面以及第二方面的任一种可能实现方式中的方法。
第七方面,提供了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行上述第一方面以及第一方面的任一种可能实现方式中的方法,或者执行上述第二方面以及第二方面的任一种可能实现方式中的方法。
第八方面,提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面以及第一方面的任一种可能实现方式中的方法,或者执行上述第二方面以及第二方面的任一种可能实现方式中的方法。
第九方面,提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面的任一种可能实现方式中的方法,或者执行上述第二方面以及第二方面的任一种可能实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行上述第一方面以及第一方面的任一种可能实现方式中的方法,或者执行上述第二方面以及第二方面的任一种可能实现方式中的方法。
上述芯片具体可以是现场可编程门阵列或者专用集成电路。
其中第三方面至第九方面所述装置的有益效果可以参考第一方面至第二方面中所描述的方法的有益效果,在此不再赘述。
附图说明
图1是本申请实施例提供的一种电子设备的硬件结构示意图。
图2是本申请实施例提供的一种电子设备的软件结构示意图。
图3是本申请实施例提供的一种窗口类型示意图。
图4是本申请实施例提供的控件与窗口之间的关系示意图。
图5是本申请实施例提供的窗口的映射关系示意图。
图6是现有的控件显示方案的用户界面示意图。
图7是本申请实施例提供的一种控件显示方法的示意性流程图。
图8是本申请实施例提供的一种控件显示方法的示意图。
图9是本申请实施例提供的一组用户界面示意图。
图10是本申请实施例提供的一种控件显示方法的示意性流程图。
图11是本申请实施例提供的一种控件显示方法的示意性流程图。
图12是本申请实施例提供的一种控件显示方法的示意图。
图13是本申请实施例提供的一种控件的示意图。
图14是现有的控件显示方案的用户界面示意图。
图15是本申请实施例提供的用户界面示意图。
图16是本申请实施例提供的一种装置的示意性结构框图。
图17是本申请实施例提供的一种电子设备的示意性结构框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
需要说明的是,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个,“至少一个”和“一个或多个”是指一个、两个或两个以上。单数表达形式“一个”“一种”“所述”“上述”“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的方法应用于电子设备,电子设备包括但不限于手机、平板电脑、车载设备、可穿戴设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、智慧屏以及其他具有显示屏的电子设备。本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图1示出了本申请实施例提供的一种电子设备的硬件结构示意图。
如图1所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial 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等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器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)接口等。
例如,处理器110与触摸传感器180K可以通过I2C总线接口通信,实现电子设备100的触摸功能。处理器110和摄像头193可以通过MIPI中的摄像头串行接口(camera serialinterface,CSI)接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194可以通过MIPI中的显示屏串行接口(display serial interface,DSI)接口通信,实现电子设备100的显示功能。
可以理解的是,上述示例中描述的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态等参数。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块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包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得电子设备100执行本申请提供的方法,以及各种功能应用以及数据处理等。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用程序(比如图库、联系人等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如图像,联系人等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。在一些实施例中,处理器110可以通过运行存储在内部存储器121的指令,和/或存储在设置于处理器110中的存储器的指令,使得电子设备100执行本申请实施例中所提供的方法。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音频播放,录音等。
传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可用于导航,体感游戏场景。
应理解,当电子设备100静止时,陀螺仪传感器180B可以检测出重力的大小及方向。还可以用于识别电子设备100姿态,应用于横竖屏切换,计步器等应用。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸显示屏。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
以上介绍了电子设备100可能的硬件结构示意图。电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的系统为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,系统运行库层以及内核层。
应用程序层可以包括一系列应用程序包(application)。如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。应用程序主要是用户界面(user interface,UI)方面的,通常使用JAVA语言调用应用程序框架层的接口编写。
电子设备中的应用程序可以处于运行状态,也可以处于未运行状态。当应用程序处于运行状态时,根据运行位置的不同,应用程序可以分为前台应用程序和后台应用程序。其中前台应用程序运行在前台,显示在电子设备的显示界面上;后台应用程序运行在后台,不显示在电子设备的显示界面上。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理服务,活动管理服务,包管理服务,视图系统,通知管理器,电话管理器,内容提供器等。
窗口管理服务(WindowManagerService,WMS),用于管理系统中的所有窗口(window),主要负责窗口的启动、添加、删除,管理窗口的大小、边界和层级,管理输入法窗口,以及当窗口切换时显示动画效果和当切换用户时管理窗口的显示等。窗口管理服务WMS还可以作为输入事件的中转站,其可以将所有的窗口的信息更新到输入调度器(InputDispatcher),使得输入调度器将用户触摸屏幕产生的输入事件派发到合适的窗口。窗口管理服务是一个系统服务类,是整个窗口管理机制实现的核心。
这里涉及到的窗口是一个抽象的概念,为方便理解,可以将窗口看做是一个容器或者一种抽象的功能集合。视图(view)是窗口的存在形式,窗口是视图的载体。视图不能单独存在,必须依附于窗口呈现在屏幕上。
安卓系统中定义了多种窗口类型,如图3所示,窗口的类型可以包括应用窗口(APPwindow)、子窗口(sub window)和系统窗口(system window),每个窗口都有对应的层级(或称z序(z-ordered)),层级大的窗口在层级小的窗口的上层。窗口的层级大小对应垂直屏幕的Z坐标轴的坐标,Z坐标越大,窗口越靠近用户,窗口的层级越高,从而会覆盖层级小的窗口。每个窗口都需要指定一种类型,在具体实现中,窗口的类型(type)参数决定了窗口显示的层级,也指定了窗口的类型。应用窗口的层级范围是1-99;子窗口的层级范围是1000-1999;系统窗口的层级范围是2000-2999。因此,应用窗口一般位于最底层;子窗口需依附于父窗口,一般显示在应用窗口之上;系统窗口一般位于最顶层,不会被其他窗口遮盖。
应用窗口是与应用相关的窗口,可以包括基窗口、普通应用窗口、应用启动窗口。基窗口是作为其他应用窗口的基础窗口,其类型表示为TYPE_BASE_APPLICATION,所有其他应用窗口需要在该类型的窗口上面呈现。普通应用窗口通常与一个活动(Activity)对应,其类型表示为TYPE_APPLICATION。本申请以下实施例中,若无特殊说明,所涉及的应用窗口可以特指普通应用窗口。应用启动窗口在应用启动时显示,该类型窗口由系统使用,用来在应用能够显示本身窗口之前显示一些其他内容,其类型表示为TYPE_APPLICATION_STARTING。
子窗口可以包括媒体(Media)窗口、媒体覆盖窗口、对话框(Dialog)窗口、弹出框窗口(PopupWindow)等。Media窗口在它所依附的应用窗口的后面显示,用来显示媒体内容,如视频,其类型表示为TYPE_APPLICATION_MEDIA。媒体覆盖窗口用来在媒体窗口上显示一些覆盖物,该类型窗口在应用窗口和媒体窗口之间显示,其类型表示为TYPE_APPLICATION_MEDIA_OVERLAY。Dialog窗口用于在一个应用窗口上显示一个对话框,其类型表示为TYPE_APPLICATION_ATTACHED_DIALOG。弹出框窗口可以使用任意布局的视图作为其内容,该类型窗口是悬浮在当前Activity之上的。
系统窗口是系统创建的窗口,可以包括系统状态栏(Status Bar)、输入法窗口(input method window)、消息提示框(Toast)、系统警告提示框(如ANR)、错误弹框、悬浮窗弹框等。系统窗口需要声明权限才能创建。
在应用程序中,对窗口的操作是通过WindowManager来进行的,而对窗口的真正处理是在WindowMangerService中进行的,WindowManagerService是一个独立的进程,所以WindowManager和WindowMangerService的交互是一个跨进程通信(inter processcommunication,IPC)过程。WindowMangerService需要通过各个窗口在屏幕上的位置以及大小来决定哪些窗口需要显示以及要显在哪里,这实际上就是要计算出各个窗口的可见区域。这里所涉及的窗口位置包括窗口在X、Y和Z轴的位置。
一般地,电子设备的屏幕是以左上角为原点,向右为X轴方向,向下为Y轴方向的一个二维空间。为了方便管理窗口的显示次序,手机的屏幕被扩展为了一个三维的空间,即多定义了一个Z轴,其方向为垂直于屏幕表面指向屏幕外。多个窗口依照其前后顺序排布在这个虚拟的Z轴上,因此窗口的显示次序又被称为Z序(Z order或z-order)。
活动管理服务(ActivityManagerService,AMS),用于管理应用程序生命周期和活动栈的所有方面,并提供常用的导航回退功能。通过活动管理器可以获得系统中正在运行的活动(activity),例如进程(process)、应用程序、服务(service)、任务(task)的信息。示例性的,通过活动管理器可以获取全局的内存使用信息,统计进程下的内存信息,获取运行进程信息(如获取正在前端运行的活动,判断应用是否在前端运行)等。AMS可以统一调度所有应用程序的Activity,因此AMS可以在用户点击应用图标后拉起应用。
包管理服务(PackageManagerService,PMS)是一个安卓系统服务,主要用于实现应用安装卸载,组件查询匹配、权限管理等功能。
视图系统用于构建应用程序,例如可以包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),以及可嵌入的全球广域网(world wide web)浏览器等。电子设备的显示界面可以由一个或多个视图组成的。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
内容提供器,用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
系统运行库层是位于应用程序框架层之下的一系列程序库的集合,可以分成两部分,分别是系统库和安卓运行时(Android runtime)。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库(也可称为C/C++本地库)是应用程序框架的支撑,可包括多个功能模块,例如:表面管理器(surface manager),媒体库(media libraries),二维图形引擎,三维图形处理库,图像处理库等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。
二维图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层,用于提供操作系统的本质功能例如文件管理、内存管理、进程管理、网络协议栈等。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动、蓝牙驱动等。
内核层可以控制计算机的硬件资源,并通过硬件抽象层(hardware abstractionlayer,HAL)为硬件系统(例如包括处理器、存储器、磁盘、打印机等)提供标准接口。硬件抽象层是在具体的硬件平台上抽象出来的一个硬件接口层,负责实现具体硬件平台的功能和控制,同时又为其它软件模块提供统一的API接口。具体来说,硬件抽象层能够将硬件操作和控制的共性抽象出来,隐藏特定平台的硬件接口细节,向上层软件提供统一的虚拟硬件平台和操控接口,以实现其它软件模块与底层硬件隔离,从而方便系统在新硬件平台上的移植。
为方便理解,本申请以下实施例将以具有图1和图2所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的控件显示方法进行具体阐述。
控件是每个应用程序都必不可少的一部分,通过控件的组合,可以形成一个个精美的界面。控件可以理解为是为了完成特定的展示或特定页面/窗体的技术功能。一般地,应用程序所使用的控件可以包括系统控件和自定义控件。系统控件是系统定制好的,可以直接使用,是应用程序开发中最基础的组件,例如消息提示框(如Toast)、对话框(如SystemDialog)、错误弹框、悬浮窗弹框(或称悬浮框)、系统状态栏等。应用可以调用系统控件。自定义控件是应用在系统控件的基础上根据自身需求扩展产生的新控件。自定义控件是属于应用的。
图4示出了控件与窗口之间的关系示意图。如图4所示,活动(Activity)是一个应用程序组件,也是界面载体,可以展示页面,并可以与用户进行交互。每一个Activity对应一个应用窗口。通常地,每一个Activity窗口的大小都等于屏幕的大小,因此,只要对每一个Activity窗口设置一个不同的Z轴位置,就可以使得位于最上面的Activity窗口(也即当前被激活的Activity窗口)才是可见的。窗口的具体实现类是PhoneWindow,每个Activity均会创建一个PhoneWindow对象。PhoneWindow对象是Activity和整个view系统交互的接口,是最基本的窗口系统。PhoneWindow中有个顶级视图DecorView,PhoneWindow将DecorView设置为整个应用窗口的根view。DecorView是视图树中的根节点视图,它并不会向用户呈现任何东西,但是可以将屏幕划分为两个区域:标题栏(Title)和内容栏(Content),通常我们在Activity中所设置的布局文件是被加载到内容栏中而展示给用户的。
简言之,Activity负责界面展示、用户交互与业务逻辑处理,其通过Window来实现视图元素的展示,Window是View的载体,View是Window的具体展示,view包括前述提及的系统控件和自定义控件。每个控件是通过对应的窗口承载的,例如系统控件承载于系统窗口,自定义控件承载于子窗口。WMS可以指定控件(或窗口)的类型、x位置和y位置,从而使控件在对应位置显示给用户。
图5示出了窗口的映射关系示意图。如图5所示,对于一个应用(application)来说,其可以包括多个窗口,例如图5所示的窗口1(Window 1)、窗口2(Window 2)和窗口3(Window 3)等。每个窗口也会包含不同的控件(例如系统控件和/或自定义控件)。以窗口1为例,其可以包括UI视图1(UIView 1)、UI视图2(UIView 2)和UI视图3(UIView3)等,每个UI视图可以理解为是一个控件。窗口1中的各个UI视图可以合成一个图层。不同窗口对应不同图层。例如窗口1对应图层1(Layer 1),窗口2对应图层2(Layer 2),窗口3对应图层3(Layer3)。在多个图层中存在一个根图层(RootLayer)。图形合成系统(例如SurfaceFlinger服务)可以将多个窗口的内容按照z-order进行混合并输出显示。可以理解的是,图5所示的窗口、UI视图以及图层的数量仅仅是示例性的,对本申请不造成任何限定。
随着电子设备技术的不断发展,电子设备例如手机、平板电脑等的屏幕尺寸越来越大,电子设备上安装的应用(application,App)也越来越多。为了满足用户的个性化需求,越来越多的电子设备支持多窗口模式(也叫多屏模式),即在一个屏幕上能够同时运行并显示多个应用程序。
当电子设备处于多窗口模式时,应用窗口的显示方式包括全屏显示、分屏显示、悬浮显示。
全屏显示,也称全屏模式,指的是屏幕上只显示一个应用窗口,并且该应用的界面填满整个屏幕。本申请实施例中,当某个窗口全屏显示时,该窗口的状态为全屏状态,定义该窗口为全屏窗口,相应地,该窗口所显示的应用为全屏显示应用。
分屏显示,也称分屏模式,指的是两个或两个以上的应用窗口分别占据屏幕的一部分,任意两个应用窗口之间不重叠,每个应用窗口可以改变大小,应用窗口的位置或者不可移动,或者仅能实现固定位置的移动,例如交换两个应用窗口的位置。本申请实施例中,当某个窗口分屏显示时,该窗口的状态为分屏状态,定义该窗口为分屏窗口,相应地,该窗口所显示的应用为分屏显示应用。
悬浮显示,也称悬浮模式,指的是至少一个应用窗口悬浮显示于其他用户界面之上,并部分覆盖其他用户界面,在用户未对悬浮显示的应用窗口进行操作的情况下,该悬浮显示的应用窗口保持在固定位置且不随其他用户界面的改变而改变。该至少一个应用窗口在屏幕上层叠显示,应用窗口之间可以部分或全部覆盖,每个应用窗口既可以改变大小,也可以移动。本申请实施例中,当某个窗口悬浮显示时,例如悬浮在全屏显示的窗口之上或悬浮在分屏显示的窗口之上,该窗口的状态为悬浮状态,定义该窗口为悬浮窗口,相应地,该窗口所显示的应用为悬浮显示应用。
相对于全屏显示应用,分屏显示应用和悬浮显示应用的窗口只是占据屏幕的一部分,因此本申请实施例中,也可以将分屏显示应用和悬浮显示应用统称为窗口化应用。
上文提到,应用可以调用系统控件,但当应用为窗口化应用时,应用在调用系统控件时会出现控件超出窗口的显示区域的问题。这是因为系统控件在屏幕中的显示位置是相对固定的,其显示位置由系统定义,例如系统定义系统控件位于屏幕的底部、中间或者顶部。简言之,系统控件的位置是相对于屏幕定义的,因此系统控件依附于屏幕而显示。若应用为全屏显示应用,应用窗口会铺满整个屏幕,应用调用系统控件时,系统控件相对于屏幕的位置可以适配应用窗口。若应用为窗口化应用,应用窗口并不会铺满整个屏幕,而是占据屏幕的一部分,当应用调用系统控件时,系统并不知道哪个应用会调用系统控件,因此系统控件仍显示在相对于屏幕预设的位置,并不会跟随应用窗口而显示,这样就导致了系统控件超出窗口的显示区域,容易让用户产生误解。
例如图6中的(a)所示,窗口201中所显示的应用为窗口化应用,该窗口化应用悬浮显示于另一个全屏窗口203之上。当用户对窗口化应用进行操作时,例如点击返回键,窗口化应用会调用系统Dialog控件202,提示用户“再次点击返回键切换到桌面”。Dialog控件202依附于屏幕显示于屏幕的中间位置,此时窗口化应用为悬浮窗形式,占据屏幕的一部分,因此Dialog控件202就超出了悬浮窗的显示区域。
再如图6中的(b)所示,窗口204和窗口205中所显示的应用均为窗口化应用,具体地,该两个窗口化应用为分屏显示应用,窗口204和窗口205组成上下分屏形式,窗口205的显示区域大于窗口204的显示区域。当用户对窗口204中的窗口化应用操作时,例如点击返回键,窗口化应用会调用系统Dialog控件206,提示用户“再次点击返回键切换到桌面”。Dialog控件206依附于屏幕显示于屏幕的中间位置,由于此时窗口化应用为分屏形式,且窗口205的显示区域大于窗口204的显示区域,Dialog控件206就显示到窗口205的区域中。但实际上,该Dialog控件206是由窗口204中的应用调用且提示的内容是指窗口204中应用要切换到桌面,而不是窗口205中的应用要切换到桌面。
综上,目前窗口化应用要主动调用系统控件时,系统控件是按照应用处于全屏状态下所设置的预设位置在屏幕的底部、中间或顶部显示,系统控件容易超出窗口的显示区域,从而导致用户无法分辨该系统控件是哪个应用弹出的,非常影响用户体验。
图7示出了本申请实施例提供的一种控件显示方法的示意性流程图。该方法应用于电子设备,该电子设备例如可以为图1所示的电子设备100。在一些实施例中,该电子设备可以具有如图2所示的软件架构。如图7所示,该方法300可以包括步骤S310至步骤S320。
S310,电子设备显示第一窗口,第一窗口用于显示第一应用,且第一窗口的面积小于屏幕的面积。
本申请实施例中,第一窗口为应用窗口。示例性的,该第一窗口为普通应用窗口,例如在具体实现中,第一窗口的类型可以表示为TYPE_APPLICATION。
这里,屏幕的面积可以理解为是电子设备的显示屏所能显示的最大面积。本申请实施例中,第一窗口的面积小于屏幕的面积,即第一窗口占据的是屏幕的一部分来显示内容。相应地,第一应用为窗口化应用。
在一些实施例中,第一应用可以为悬浮显示应用或分屏显示应用。对应地,第一窗口可以为悬浮窗口或分屏窗口。
S320,响应于用户对第一应用的操作,电子设备在第一窗口的显示区域内显示第一系统控件。
其中,第一系统控件的实际显示位置和实际显示大小是根据第一系统控件的默认显示位置和默认显示大小以及第一窗口相对于屏幕的缩放比例确定的。
本申请实施例中,第一系统控件的实际显示位置和实际显示大小适配于第一窗口,第一系统控件的默认显示位置和默认显示大小适配于电子设备的屏幕。
也就是说,第一系统控件具有预设好的显示位置和显示大小,但默认显示位置和默认显示大小是依附于屏幕的大小而定义的。当第一应用调用第一系统控件时,第一应用为窗口化应用,第一系统控件的实际显示位置和实际显示大小要按照显示第一窗口的大小以及位置进行跟随,以适配第一窗口。
这里,用户对第一应用的操作可以是任意的需要第一应用调用系统控件进行响应的操作,例如点击操作、滑动操作、输入操作等,本申请实施例对此不作限定。
可以理解的是,电子设备显示第一系统控件是为了响应用户对第一应用的操作,因此该第一系统控件实际是由第一应用主动调用的。第一系统控件的窗口类型为系统窗口。
本申请实施例中,第一应用为窗口化应用,当第一应用调用第一系统控件时,第一系统控件按照第一窗口的大小、位置进行跟随,其大小、位置适配于第一窗口。这样可以使得第一系统控件在第一窗口的显示区域内显示,避免了第一应用在调用第一系统控件时第一系统控件超出第一窗口的显示区域的问题,提升了用户体验。
在一些实施例中,第一窗口相对于屏幕的缩放比例为第一比值或第二比值,其中第一比值为第一窗口的长边长度与屏幕的长边长度之间的比值,第二比值为第一窗口的短边长度与屏幕的短边长度之间的比值。
为方便理解,以图8为例,图8中的(a)或(b)示意性地示出了电子设备屏幕和在屏幕中显示的第一窗口。第一窗口的长边长度为h,屏幕的长边长度为H,则第一比值为h/H。第一窗口的短边长度为w,屏幕的短边长度为W,第二比值为w/W。即,第一窗口相对于屏幕的缩放比例可以为h/H或w/W。
在一些实施例中,若第一窗口相对于屏幕等比例缩放,则第一比值与第二比值是相等的,即h/H=w/W。
在一些实施例中,若第一窗口相对于屏幕是非等比例缩放,则第一比值与第二比值不相等,即h/H≠w/W。在这样情况下,第一窗口相对于屏幕的缩放比例可以为第一比值或第二比值,或者可以为第一比值和第二比值中的较小值。
当第一窗口相对于屏幕的缩放比例为第一比值和第二比值中的较小值时,可以保证在步骤S320中得到的具有实际显示位置和实际显示大小的第一系统控件不超出第一窗口的显示区域。
在一些实施例中,第一窗口相对于屏幕的缩放比例可以为第三比值,第三比值为第一窗口的面积与屏幕的面积之间的比值。
在一些实施例中,第一窗口相对于屏幕的缩放比例可以为第四比值,第四比值为第一窗口的对角线长度与屏幕的对角线长度之间的比值。
可以理解的是,由于第一窗口的显示区域占据的是屏幕的一部分,第一窗口的面积小于屏幕的面积,因此第一窗口相对于屏幕的缩放比例小于1。
在一些实施例中,第一系统控件的实际显示大小包括实际宽度和实际高度。第一系统控件的默认显示大小包括预设宽度和预设高度。其中实际宽度为预设宽度与缩放比例的乘积,实际高度为预设高度与缩放比例的乘积。
为方便理解,仍以图8为例,其中图8中的(a)示出了第一系统控件按照默认显示大小适配屏幕的示意图,图8中的(b)示出了第一系统控件按照实际显示大小适配第一窗口的示意图,图8中的(a)所示的第一窗口在屏幕中的位置以及第一窗口的大小与图8中的(b)所示的第一窗口在屏幕中的位置以及第一窗口的大小是一致的。
参考图8中的(a)所示,第一系统控件的默认显示大小包括预设宽度T和预设高度G;参考图8中的(b)所示,第一系统控件的实际显示大小包括实际宽度t和实际高度g。其中实际宽度t为预设宽度T与上述确定的缩放比例之间的乘积,实际高度g为预设高度G与上述确定的缩放比例之间的乘积。
也就是说,在已知缩放比例以及第一系统控件的预设显示大小的情况下,可以利用(预设宽度T*缩放比例)得到第一系统控件在第一窗口内显示时的实际宽度,利用(预设高度G*缩放比例)得到第一系统控件在第一窗口内显示时的实际高度。
如此,第一应用调用第一系统控件时,第一系统控件的大小是跟随第一窗口的大小而变化的。第一系统控件按照同样的缩放比例缩小,可以保证第一系统控件可以在第一窗口的显示区域内显示,而不会超出第一窗口的显示区域。
在一些实施例中,第一系统控件的实际显示位置包括以第一窗口的左上角为原点的第一横坐标和第一纵坐标。第一系统控件的预设显示位置包括以屏幕的左上角为原点的第二横坐标和第二纵坐标。其中第一横坐标为第二横坐标与缩放比例的乘积,第一纵坐标为第二纵坐标与缩放比例的乘积。
为方便理解,仍以图8为例,其中图8中的(a)示出了第一系统控件按照默认显示位置适配屏幕的示意图,图8中的(b)示出了第一系统控件按照实际显示位置适配第一窗口的示意图,图8中的(a)所示的第一窗口在屏幕中的位置以及第一窗口的大小与图8中的(b)所示的第一窗口在屏幕中的位置以及第一窗口的大小是一致的。
参考图8中的(a)所示,第一系统控件的预设显示位置的坐标可以是以屏幕的左上角A为原点。该原点A向右为X轴的正轴,该原点A向下为Y轴正轴,则A点在屏幕所依据的坐标系(为方便描述,以下简称第二坐标系)中的二维坐标为(0,0)。一般地,在具体实现中,可以通过第一系统控件上的一点的坐标表示第一系统控件的位置。示例性的,这里以第一系统控件的左上角C代表第一系统控件的预设显示位置。相应地,第一系统控件的预设显示位置可以包括第二横坐标和第二纵坐标,即C点在第二坐标系中的坐标为(第二横坐标,第二纵坐标)。
参考图8中的(b)所示,第一系统控件的实际显示位置的坐标可以是以第一窗口的左上角B为原点。该原点B向右为X轴的正轴,该原点B向下为Y轴正轴,则B点在第一窗口所依据的坐标系(为方便描述,以下简称第一坐标系)中的二维坐标为(0,0)。类似地,这里以第一系统控件的左上角D代表第一系统控件的实际显示位置。相应地,第一系统控件的实际显示位置可以包括第一横坐标和第一纵坐标,即D点在第一坐标系中的坐标为(第一横坐标,第一纵坐标)。第一横坐标为第二横坐标与上述确定的缩放比例的乘积,第一纵坐标为第二纵坐标与上述确定的缩放比例的乘积。
也就是说,在已知缩放比例以及第一系统控件的预设显示位置的情况下,可以利用(第二横坐标*缩放比例)得到第一系统控件在第一窗口内显示时的横坐标,利用(第二纵坐标*缩放比例)得到第一系统控件在第一窗口内显示时的纵坐标。
在该实施例中,C点坐标以屏幕的左上角为原点,第二横坐标和第二纵坐标表示的是C点与屏幕的长边之间的距离和C点与屏幕的短边之间的距离。当将第二横坐标和第二纵坐标分别乘以缩放比例后,相当于第一窗口相对于屏幕缩小时,各距离跟随第一窗口同步缩小。这样可以保证缩小后的第一系统控件可以在第一窗口内完整显示,而不会超出第一窗口的显示区域。
本申请实施中,第一系统控件上用于表示第一系统控件的位置的点可以称为参考点。图8中是以第一系统控件的左上角为参考点为例进行说明的,在其他实施例中,参考点可以为第一系统控件上的任意一点,例如为第一系统控件的右上角、左下角、右下角、中心点等,本申请实施例对此不作限定。
在一些实施例中,第一系统控件的实际显示位置包括以屏幕的左上角为原点的第一横坐标和第一纵坐标。第一系统控件的预设显示位置包括以屏幕的左上角为原点的第二横坐标和第二纵坐标。第一窗口的左上角的坐标包括以屏幕的左上角为原点的第三横坐标和第三纵坐标。其中,第一横坐标为第二横坐标与缩放比例的乘积再加上第三横坐标后得到的值,第一纵坐标为第二纵坐标与缩放比例的乘积再加上第三纵坐标后得到的值。
为方便理解,仍以图8为例,屏幕上显示的任意窗口、控件等均在同一坐标系下。该坐标系可以为屏幕坐标系,即以屏幕左上角A为原点,以该原点A向右为X轴的正轴,以该原点A向下为Y轴的正轴。参考图8中的(a)所示,A点的坐标为(0,0),第一窗口的左上角B点的坐标为(第三横坐标,第三纵坐标),第一系统控件的预设显示位置以其左上角C表示,C点的坐标为(第二横坐标,第二纵坐标),第一系统控件的实际显示位置以其缩放后的左上角D表示,D点的坐标为(第一横坐标,第一纵坐标)。则,利用(第二横坐标*缩放比例+第三横坐标)就可以得到第一横坐标,利用(第二纵坐标*缩放比例+第三纵坐标)就可以得到第一纵坐标。
第一系统控件的显示位置跟随第一窗口的位置变化,可以保证第一系统控件完整显示在第一窗口的显示区内。
图9示出了本申请实施例提供一种用户界面示意图。
如图9中的(a)所示,窗口401中所显示的应用为窗口化应用,该窗口化应用悬浮显示于另一个全屏窗口403之上。当用户对窗口化应用进行操作时,例如点击返回键,窗口化应用会调用系统Dialog控件402,提示用户“再次点击返回键切换到桌面”。电子设备执行本申请实施例提供的控件显示方法,使得Dialog控件402显示于窗口401的中间位置,并且未超出窗口401的显示区域。此时Dialog控件402的实际显示位置和实际显示大小是适配窗口401的,用于提醒用户窗口401中应用要切换到桌面,而非如图6中的(a)所示的位于屏幕的中间位置。
再如图9中的(b)所示,窗口404和窗口405中所显示的应用均为窗口化应用,具体地,该两个窗口化应用为分屏显示应用,窗口404和窗口405组成上下分屏形式,窗口405的显示区域大于窗口404的显示区域。当用户对窗口404中的窗口化应用操作时,例如点击返回键,窗口化应用会调用系统Dialog控件406,提示用户“再次点击返回键切换到桌面”。电子设备执行本申请实施例提供的控件显示方法,使得Dialog控件406显示于窗口404的中间位置,并且未超出窗口404的显示区域。此时Dialog控件406的实际显示位置和实际显示大小是适配窗口404的,用于提醒用户窗口404中应用要切换到桌面,而非如图6中的(b)所示的位于屏幕的中间位置。
在一些实施例中,在步骤S320之前,方法300还可以包括如下步骤S1至S5:
S1,电子设备接收用户对第一应用的操作。
示例性的,该步骤可以由电子设备中的输入模块执行。具体地,HAL层中的传感器模块等可以识别用户的动作。
S2,电子设备根据操作确定第一应用调用第一系统控件。
S3,电子设备根据第一窗口的尺寸确定第一应用为窗口化应用。
这里,电子设备要确定第一系统控件是按照适配屏幕的方式显示还是按照适配窗口的方式显示。当电子设备确定第一应用为窗口化应用时,可以确定第一系统控件按照适配第一窗口的方式显示。若第一应用为全屏应用,则可以确定第一系统控件按照适配屏幕的方式显示。
S4,电子设备根据第一窗口的尺寸和屏幕的尺寸确定缩放比例。
在该步骤中,确定缩放比例的方式可以参考前文描述,为简洁,在此不再赘述。在具体实现中,该步骤可以由如图2所示的应用框架层中的窗口管理服务WMS实现。WMS可以获取第一窗口的尺寸和屏幕的尺寸,从而可以根据前述方式确定第一窗口相对于屏幕的缩放比例。
S5,基于缩放比例,对第一系统控件的默认显示位置和默认显示大小进行更新,得到第一系统控件的实际显示位置和实际显示大小。
在该步骤中,计算第一系统控件的实际显示位置和实际显示大小的方式可以参考前文描述,为简洁,在此不再赘述。在具体实现中,该步骤可以由如图2所示的应用框架层中的窗口管理服务WMS实现。WMS可以基于缩放比例和第一系统控件的默认显示位置和默认显示大小,更新第一系统控件的实际显示位置和实际显示大小,并在第一窗口的显示区域内显示出来。
在一些实施例中,第一系统控件为以下控件中的任一种:消息提示框,系统对话框,错误弹框,悬浮框,输入法窗口,系统状态栏。
在一些实施例中,第一系统控件的Z序值大于或等于2000且小于或等于2999。
在一些实施例中,第一窗口的Z序值大于或等于1且小于或等于99。
图10示出了本申请实施例提供的一种控件显示方法的示意性流程图。图10所示的方法500是方法300的一个具体的例子。如图10所示,方法500可以包括步骤S501至步骤S510。
S501,开始。
在该步骤中,电子设备可以在屏幕上显示应用窗口,例如显示第一应用的窗口,即前述第一窗口。
S502,应用添加控件。
示例性的,应用可以是响应于用户对第一应用的操作而添加控件,例如应用收到添加控件的指令。这里所涉及的添加控件,可以理解为是在应用窗口的显示区域内显示控件。
在该步骤中,应用可以添加系统控件,也可以添加自定义控件。
S503,判断是否为系统添加。
也就是说,电子设备判断应用添加的控件是否为系统控件。
若否,则执行步骤S506,控制控件按照默认显示位置和默认显示大小布局。
若是,则执行步骤S504。
S504,判断应用是否为窗口化应用。
也就是说,电子设备判断应用在调用系统控件时是否可能出现系统控件超出窗口显示区域的问题。
若否,则执行步骤S507,控制系统控件按照默认显示位置和默认显示大小适配屏幕。
若是,则执行步骤S505。
S505,判断应用窗口是否最小化。
也就是说,电子设备需要判断系统控件是否需要显示在屏幕上。
若是,则执行步骤S508,控制系统控件按照默认显示位置和默认显示大小适配屏幕。
若否,则执行步骤S509。
S509,控制系统控件按照实际显示位置和实际显示大小适配窗口。
也就是说,当应用窗口显示于屏幕上且应用为窗口化应用时,控制系统控件对窗口进行跟随。其中确定系统控件的实际显示位置和实际显示大小的方式可以参考前述方法300的相关描述,为简洁,在此不再赘述。
S510,图层合成。
在该步骤中,电子设备可以按照图5所示的过程进行图层合成。该图层合成的过程与现有方案相同,在此不再详述。
S511,图层送显。
在该步骤中,电子设备将合成好的图层送到显示屏上显示。当应用窗口显示于屏幕上时,应用添加的控件就可以被用户看到。
S512,结束。
在一些实施例中,上述步骤S503至S509可以由窗口管理服务WMS执行。步骤S510和步骤S511可以由SurfaceFlinger服务执行。具体地,SurfaceFlinger服务将多个图层的内容按照z-order进行混合并输出显示。
需要说明的是,步骤S503、S504、S505可以同步执行,可以先后执行,本申请实施例对此不作限定。
图11示出了本申请实施例提供的一种控件显示方法的示意性流程图。该方法应用于电子设备,该电子设备例如可以为如图1所示的电子设备100。如图11所示,方法600包括步骤S610至步骤S620。
S610,显示第一窗口,第一窗口用于显示第一应用,且第一窗口的面积小于屏幕的面积,第一窗口与第一虚拟屏幕对应,其中第一虚拟屏幕的大小和位置与第一窗口的大小和位置一致。
这里,第一虚拟屏幕是在创建第一应用时创建的。该第一虚拟屏幕与第一窗口在位置和大小上均相同。
S620,响应于用户对第一应用的操作,在第一窗口的显示区域内显示第一系统控件,其中第一系统控件按照默认显示位置和默认显示大小显示,第一系统控件的默认显示位置和默认显示大小适配于第一虚拟屏幕。
本申请实施例中,在创建第一应用时,可以相应创建一个虚拟屏幕,即第一虚拟屏幕。这样,窗口化应用可以基于该第一虚拟屏幕实现,相应地,系统控件可以基于第一虚拟屏幕的大小进行适配,而不是基于电子设备的实际屏幕大小进行适配。这样,系统控件的默认显示位置和默认显示大小适配于第一虚拟屏幕,也即适配于第一窗口。因此,系统控件不会超出第一窗口的显示区域,从而可以提升用户体验。
图12示出了本申请实施例提供的一种控件显示方法的示意图。如图12所示,最外层的方框表示的是电子设备的屏幕大小。在应用图11所示的方法600的过程中,系统侧创建的每个窗口化应用,都可以基于一个虚拟屏幕来实现。即每创建一个窗口化应用,就创建一个对应大小、位置的虚拟屏幕。例如电子设备的屏幕上创建了应用1窗口、应用2窗口、应用3窗口,相应地,电子设备也分别对应创建了对应于应用1窗口的虚拟屏幕1,对应于应用2窗口的虚拟屏幕2,对应于应用3窗口的虚拟屏幕3。这样应用1窗口所调用的系统控件1基于虚拟屏幕1实现,其大小和位置适配虚拟屏幕1;应用2窗口所调用的系统控件2基于虚拟屏幕2实现,其大小和位置适配虚拟屏幕2;应用3窗口所调用的系统控件3基于虚拟屏幕3实现,其大小和位置适配虚拟屏幕3。窗口化应用所调用的系统控件不基于最外层的实际屏幕的大小、位置进行适配,而是基于与窗口适配的虚拟屏幕的大小、位置进行适配,系统控件不会产生偏移,避免了系统控件在显示时超出对应窗口的实际显示区域,提升了用户使用体验。
在一些实施例中,上述提及的系统控件可以为消息提示框,系统对话框,错误弹框,悬浮框,输入法窗口,系统状态栏等。
当然,在一些实施例中,上述提及的系统控件可以不包括悬浮框。悬浮框也可以称为悬浮窗弹框,其类型通常表示为TYPE_SYSTEM_OVERLAY。图13示出了悬浮框的设置位置示意图和用户界面示意图。如图13所示,系统控件702即为悬浮框的一个示例,悬浮框一般贴着屏幕的左侧或者右侧悬浮在窗口(例如窗口701)上显示。由于TYPE_SYSTEM_OVERLAY类型的窗口类型为悬浮控件,本身就是系统提供给三方应用实现悬浮效果,即悬浮控件本身就需要悬浮于屏幕,因此悬浮控件可以不按照应用窗口的大小、位置进行跟随。
在一些实施例中,当三方需要添加控件且该控件的类型非悬浮控件,并且应用窗口没有最小化时,可以执行申请实施例提供的控件显示方法,使要添加的系统控件按照应用窗口的大小和位置进行跟随。
以上结合图7至图13重点描述了应用于系统控件的控件显示方法,窗口化应用调用系统控件时,可以按照应用窗口的比例对控件进行大小、位置的更新,使系统控件的位置不会超出窗口的实际显示区域。
在其他一些实施例中,本申请实施例提供的控件显示方法也可以应用于自定义控件。上文提到,自定义控件支持应用设置其在屏幕中的位置或在窗口中的显示位置,但多数应用基于全屏适配的角度指定自定义控件在屏幕中的位置,并未考虑到窗口化的显示效果,从而导致显示异常。
示例性的,针对某个自定义控件,开发人员在应用开发阶段可以在代码字段中指定控件的类型和位置,其中控件的位置可以通过坐标表示。在一些情况下,开发人员指定的控件的位置是适配全屏的,这样控件对应的横坐标和纵坐标为固定值,例如横坐标为100,纵坐标为300。这样,应用所指定的控件位置仅能针对全屏适配,并不能针对窗口适配。因此,当窗口化应用主动调用该自定义控件时,就可能导致自定义控件的显示位置参数异常,例如自定义控件的坐标未按照窗口的实际大小区域适配导致坐标超出了窗口的显示区域,这样控件的位置也会超出窗口的显示区域,影响用户体验。
例如图14所示,在将电子设备投屏到显示器上或者使用屏幕尺寸较大的电子设备时,屏幕上可以打开多个窗口化应用(如悬浮显示应用),例如图14所示的窗口801和窗口802。当窗口801中的应用需要调用自定义控件803时,由于自定义控件803的显示位置相对于屏幕固定,会导致控件803的位置超出窗口801的显示区域,用户无法分辨该内容是哪个应用弹出,非常影响用户体验。
因此,本申请实施例所提供的控件显示方法同样适用于具有固定显示位置的自定义控件。例如图15所示,应用于本申请提供的控件显示方法,自定义控件803跟随窗口801变化,从而显示在窗口801的显示区域内。
本申请实施例提供的控件显示方法应用于自定义控件的过程与前述介绍的控件显示方法应用于系统控件的过程类似,只要将对应的系统控件替换为自定义控件即可,具体可以参考上文相关描述,为简介,在此不再赘述。
综上所述,在窗口化应用主动调用系统控件的场景,或者应用自定义控件的大小、位置超出窗口的实际显示区域,从而导致控件位置、大小异常的场景下,利用本申请提供的控件显示方法,可以实现控件位置兼容,从而提升用户体验。
本申请实施例提供的控件显示方法主要由电子设备中的窗口管理服务具体实现,从而可以在系统层面调整控件的大小和位置,解决控件不能适配窗口化应用的问题。
应理解,本申请实施例仅以系统为例描述控件显示方法,本申请实施提供的控件显示方法还可以应用于其他操作系统例如/>鸿蒙系统等。对于不同的操作系统,窗口管理机制可能不同,但只要存在控件的位置和大小不能适配窗口化场景的问题,均可以应用本申请提供的控件显示方法。
上文结合图1至图15,详细描述了本申请实施例提供的控件显示方法,下面将结合图16至图17详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图16示出了本申请实施例提供的一种装置的示意性结构图。该装置900可以位于图1所示的电子设备100中,或者为电子设备100的一个具体例子。装置900能够执行图7或11所示方法中的各个步骤,并且可以具体实现图8-10、12、15所示的实施例,为避免冗余,不再重复描述。
如图16所示,装置900可以包括显示单元910和处理单元920。
显示单元910可以用于执行方法300中的步骤S310、S320,或者执行方法600中的步骤S610、S620。显示单元910用于执行显示窗口、显示应用界面、显示控件等与显示相关的步骤。
处理单元920可以用于执行方法500中的步骤S503至步骤S511。处理单元920主要用于执行有关控件处理、图层合成、图层送显等步骤。
图17是本申请实施例提供的一种电子设备的示意性结构图。图17所示的电子设备1000可以是图1中电子设备100的一个具体的例子。
图17所示的电子设备1000包括存储器1010、处理器1020和总线1030。其中存储器1010、处理器1020通过总线1030实现彼此之间的通信连接。
存储器1010可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1010可以存储程序,当存储器1010中存储的程序被处理器1020执行时,处理器1020用于执行本申请实施例的控件显示方法的各个步骤。
处理器1020可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以执行本申请实施例的控件显示方法。
处理器1020还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的控件显示方法的各个步骤可以通过处理器1020中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1020还可以是通用处理器、数字信号处理器(digitalsignal processing,DSP)、专用集成电路、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1010,处理器1020读取存储器1010中的信息,结合其硬件执行本申请实施例的控件显示方法。
在一些实施例中,电子设备1000还包括通信接口1040。通信接口1040使用例如但不限于收发器一类的收发装置,来实现电子设备1000与其他设备或通信网络之间的通信。
总线1030可包括在电子设备1000各个部件(例如,存储器1010、处理器1020、通信接口1030)之间传送信息的通路。
本申请实施例还提供一种电子设备,包括:一个或多个处理器;一个或多个存储器;该一个或多个存储器存储有一个或多个计算机程序,该一个或多个计算机程序包括指令,当该指令被该一个或多个处理器执行时,使得该电子设备执行如图7至13、15所示方法中的各个步骤或具体实施例。
本申请实施例还提供了一种可读存储介质,包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行如图7至13、15所示方法中的各个步骤或具体实施例。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种控件显示方法,其特征在于,应用于包括屏幕的电子设备,所述方法包括:
显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积;
响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件;
其中,所述第一系统控件的实际显示位置和实际显示大小是根据所述第一系统控件的默认显示位置和默认显示大小以及所述第一窗口相对于所述屏幕的缩放比例确定的,所述第一系统控件的实际显示位置和实际显示大小适配于所述第一窗口,所述第一系统控件的默认显示位置和默认显示大小适配于所述屏幕。
2.根据权利要求1所述的方法,其特征在于,所述第一窗口相对于所述屏幕的缩放比例为第一比值或第二比值,其中所述第一比值为所述第一窗口的长边长度与所述屏幕的长边长度之间的比值,所述第二比值为所述第一窗口的短边长度与所述屏幕的短边长度之间的比值。
3.根据权利要求2所述的方法,其特征在于,在所述第一比值与所述第二比值不相等的情况下,所述第一窗口相对于所述屏幕的缩放比例为所述第一比值和所述第二比值中的较小值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
所述第一系统控件的实际显示大小包括实际宽度和实际高度;
所述第一系统控件的默认显示大小包括预设宽度和预设高度;
其中所述实际宽度为所述预设宽度与所述缩放比例的乘积,所述实际高度为所述预设高度与所述缩放比例的乘积。
5.根据权利要求1至4中任一项所述的方法,其特征在于,
所述第一系统控件的实际显示位置包括以所述第一窗口的左上角为原点的第一横坐标和第一纵坐标;
所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;
其中所述第一横坐标为所述第二横坐标与所述缩放比例的乘积,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积。
6.根据权利要求1至4中任一项所述的方法,其特征在于,
所述第一系统控件的实际显示位置包括以所述屏幕的左上角为原点的第一横坐标和第一纵坐标;
所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;
所述第一窗口的左上角的坐标包括以所述屏幕的左上角为原点的第三横坐标和第三纵坐标;
其中,所述第一横坐标为所述第二横坐标与所述缩放比例的乘积再加上所述第三横坐标后得到的值,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积再加上所述第三纵坐标后得到的值。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件之前,所述方法还包括:
接收所述用户对所述第一应用的所述操作;
根据所述操作确定所述第一应用调用所述第一系统控件;
根据所述第一窗口的尺寸确定所述第一应用为窗口化应用;
根据所述第一窗口的尺寸和所述屏幕的尺寸确定所述缩放比例;
基于所述缩放比例,对所述第一系统控件的默认显示位置和默认显示大小进行更新,得到所述第一系统控件的实际显示位置和实际显示大小。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一系统控件为以下控件中的任一种:消息提示框,系统对话框,系统警告提示框,错误弹框,悬浮框,输入法窗口,系统状态栏。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述第一系统控件的Z序值大于或等于2000且小于或等于2999。
10.一种控件显示方法,其特征在于,应用于包括屏幕的电子设备,所述方法包括:
显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积,所述第一窗口与第一虚拟屏幕对应,其中所述第一虚拟屏幕的大小和位置与所述第一窗口的大小和位置一致;
响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件,其中所述第一系统控件按照默认显示位置和默认显示大小显示,所述第一系统控件的默认显示位置和默认显示大小适配于所述第一虚拟屏幕。
11.一种电子设备,其特征在于,包括屏幕和显示单元,所述显示单元用于:
显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积;
响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件;
其中,所述第一系统控件的实际显示位置和实际显示大小是根据所述第一系统控件的默认显示位置和默认显示大小以及所述第一窗口相对于所述屏幕的缩放比例确定的,所述第一系统控件的实际显示位置和实际显示大小适配于所述第一窗口,所述第一系统控件的默认显示位置和默认显示大小适配于所述屏幕。
12.根据权利要求11所述的电子设备,其特征在于,所述第一窗口相对于所述屏幕的缩放比例为第一比值或第二比值,其中所述第一比值为所述第一窗口的长边长度与所述屏幕的长边长度之间的比值,所述第二比值为所述第一窗口的短边长度与所述屏幕的短边长度之间的比值。
13.根据权利要求12所述的电子设备,其特征在于,在所述第一比值与所述第二比值不相等的情况下,所述第一窗口相对于所述屏幕的缩放比例为所述第一比值和所述第二比值中的较小值。
14.根据权利要求11至13中任一项所述的电子设备,其特征在于,
所述第一系统控件的实际显示大小包括实际宽度和实际高度;
所述第一系统控件的默认显示大小包括预设宽度和预设高度;
其中所述实际宽度为所述预设宽度与所述缩放比例的乘积,所述实际高度为所述预设高度与所述缩放比例的乘积。
15.根据权利要求11至14中任一项所述的电子设备,其特征在于,
所述第一系统控件的实际显示位置包括以所述第一窗口的左上角为原点的第一横坐标和第一纵坐标;
所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;
其中所述第一横坐标为所述第二横坐标与所述缩放比例的乘积,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积。
16.根据权利要求11至14中任一项所述的电子设备,其特征在于,
所述第一系统控件的实际显示位置包括以所述屏幕的左上角为原点的第一横坐标和第一纵坐标;
所述第一系统控件的预设显示位置包括以所述屏幕的左上角为原点的第二横坐标和第二纵坐标;
所述第一窗口的左上角的坐标包括以所述屏幕的左上角为原点的第三横坐标和第三纵坐标;
其中,所述第一横坐标为所述第二横坐标与所述缩放比例的乘积再加上所述第三横坐标后得到的值,所述第一纵坐标为所述第二纵坐标与所述缩放比例的乘积再加上所述第三纵坐标后得到的值。
17.根据权利要求11至16中任一项所述的电子设备,其特征在于,所述电子设备还包括处理单元,在所述显示单元在所述第一窗口的显示区域内显示第一系统控件之前,所述处理单元用于:
接收所述用户对所述第一应用的所述操作;
根据所述操作确定所述第一应用调用所述第一系统控件;
根据所述第一窗口的尺寸确定所述第一应用为窗口化应用;
根据所述第一窗口的尺寸和所述屏幕的尺寸确定所述缩放比例;
基于所述缩放比例,对所述第一系统控件的默认显示位置和默认显示大小进行更新,得到所述第一系统控件的实际显示位置和实际显示大小。
18.根据权利要求11至17中任一项所述的电子设备,其特征在于,所述第一系统控件为以下控件中的任一种:消息提示框,系统对话框,系统警告提示框,错误弹框,悬浮框,输入法窗口,系统状态栏。
19.根据权利要求11至18中任一项所述的电子设备,其特征在于,所述第一系统控件的Z序值大于或等于2000且小于或等于2999。
20.一种电子设备,其特征在于,包括屏幕和显示单元,所述显示单元用于:
显示第一窗口,所述第一窗口用于显示第一应用,且所述第一窗口的面积小于所述屏幕的面积,所述第一窗口与第一虚拟屏幕对应,其中所述第一虚拟屏幕的大小和位置与所述第一窗口的大小和位置一致;
响应于用户对所述第一应用的操作,在所述第一窗口的显示区域内显示第一系统控件,其中所述第一系统控件按照默认显示位置和默认显示大小显示,所述第一系统控件的默认显示位置和默认显示大小适配于所述第一虚拟屏幕。
21.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1至10中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至10中任一项所述的方法。
23.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至10中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211206525.1A CN117806744A (zh) | 2022-09-30 | 2022-09-30 | 控件显示方法及电子设备 |
PCT/CN2023/117195 WO2024066976A1 (zh) | 2022-09-30 | 2023-09-06 | 控件显示方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211206525.1A CN117806744A (zh) | 2022-09-30 | 2022-09-30 | 控件显示方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117806744A true CN117806744A (zh) | 2024-04-02 |
Family
ID=90423993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211206525.1A Pending CN117806744A (zh) | 2022-09-30 | 2022-09-30 | 控件显示方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117806744A (zh) |
WO (1) | WO2024066976A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970436A (zh) * | 2013-01-25 | 2014-08-06 | 人人游戏网络科技发展(上海)有限公司 | 在电子设备的屏幕上进行显示的方法和装置 |
TWI564781B (zh) * | 2013-06-07 | 2017-01-01 | Insyde Software Corp | In the mobile operating system of the application window method and apparatus |
CN104793923A (zh) * | 2014-01-20 | 2015-07-22 | 中兴通讯股份有限公司 | 一种实现悬浮输入的方法和装置 |
CN103809850A (zh) * | 2014-02-10 | 2014-05-21 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN107688422B (zh) * | 2017-09-05 | 2020-06-26 | Oppo广东移动通信有限公司 | 通知消息显示方法及装置 |
CN110119239B (zh) * | 2018-02-06 | 2024-05-28 | 北京搜狗科技发展有限公司 | 一种输入法应用显示方法及装置 |
-
2022
- 2022-09-30 CN CN202211206525.1A patent/CN117806744A/zh active Pending
-
2023
- 2023-09-06 WO PCT/CN2023/117195 patent/WO2024066976A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024066976A1 (zh) | 2024-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102522266B1 (ko) | 애플리케이션 디스플레이 방법 및 전자 장치 | |
WO2021027747A1 (zh) | 一种界面显示方法及设备 | |
WO2021057868A1 (zh) | 一种界面切换方法及电子设备 | |
CN112714901B (zh) | 系统导航栏的显示控制方法、图形用户界面及电子设备 | |
US20220107821A1 (en) | User interface layout method and electronic device | |
CN113132526B (zh) | 一种页面绘制方法及相关装置 | |
WO2021175272A1 (zh) | 一种应用信息的显示方法及相关设备 | |
CN115981582B (zh) | 显示方法及电子设备 | |
CN112612386B (zh) | 移动终端及其应用卡片的显示方法 | |
WO2022206681A1 (zh) | 一种窗口的显示方法以及相关装置 | |
US20230236714A1 (en) | Cross-Device Desktop Management Method, First Electronic Device, and Second Electronic Device | |
WO2023005751A1 (zh) | 渲染方法及电子设备 | |
CN114690998B (zh) | 图片处理方法及电子设备 | |
WO2024066976A1 (zh) | 控件显示方法及电子设备 | |
CN116688494B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN116672707B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN116700655B (zh) | 一种界面显示方法及电子设备 | |
CN116185245B (zh) | 一种页面显示方法及电子设备 | |
CN116795306A (zh) | 图像显示方法和电子设备 | |
CN116820288A (zh) | 窗口控制方法、电子设备及计算机可读存储介质 | |
CN117806745A (zh) | 界面生成方法及电子设备 | |
CN117909000A (zh) | 界面生成方法及电子设备 | |
CN118193092A (zh) | 显示方法和电子设备 | |
CN116991532A (zh) | 一种虚拟机窗口的显示方法、电子设备及系统 | |
CN118092759A (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 |