一种应用窗口的显示方法及终端转让专利

申请号 : CN201880068019.6

文献号 : CN111247510B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱登奎黄浩杨志超徐斌

申请人 : 华为技术有限公司

摘要 :

本申请的实施例提供一种应用窗口的显示方法及终端,涉及显示技术领域,可减小输入法软键盘对待输入的应用窗口产生的遮挡现象,提高终端的输入效率。该方法包括:终端显示第一GUI,所述第一GUI中包括第一应用窗口;所述终端接收作用于所述第一应用窗口的输入操作;响应于所述输入操作,所述终端显示第二GUI,所述第二GUI中包括显示位置固定的软键盘,且所述第二GUI中除所述软键盘之外的区域内包括完整显示的所述第一应用窗口;其中,所述第二GUI中所述软键盘的显示位置与所述第一GUI中所述第一应用窗口的显示位置部分或全部重叠。

权利要求 :

1.一种应用窗口的显示方法,其特征在于,所述方法应用于支持显示多应用窗口的终端中,所述方法包括:

所述终端显示第一用户图形界面GUI,所述第一GUI中包括第一应用窗口;

所述终端接收作用于所述第一应用窗口的输入操作;

响应于所述输入操作,所述终端显示第二GUI,所述第二GUI中包括显示位置固定的软键盘,且所述第二GUI中除所述软键盘之外的区域内包括完整显示的所述第一应用窗口;

其中,所述第二GUI中所述软键盘的显示位置与所述第一GUI中所述第一应用窗口的显示位置部分或全部重叠。

2.根据权利要求1所述的方法,其特征在于,所述终端显示第二GUI,包括:所述终端在所述第二GUI中的固定位置绘制所述软键盘;

所述终端将所述第二GUI中除所述软键盘之外的区域确定为允许绘制应用窗口的绘制区域;

所述终端在所述绘制区域内绘制所述第一应用窗口。

3.根据权利要求2所述的方法,其特征在于,所述终端在所述绘制区域内绘制所述第一应用窗口,包括:

所述终端查询所述第一应用窗口在所述第一GUI中的窗口状态;

所述终端根据所述窗口状态确定所述第一应用窗口在所述第二GUI中的窗口参数,所述窗口参数包括所述第一应用窗口的大小和位置;

所述终端使用所述窗口参数将所述第一应用窗口绘制在所述绘制区域内。

4.根据权利要求3所述的方法,其特征在于,所述第一应用窗口在所述第一GUI中的窗口状态为最大化状态,

其中,所述终端根据所述窗口状态确定所述第一应用窗口在所述第二GUI中的窗口参数,包括:

所述终端将所述绘制区域中最大矩形的位置和大小确定为所述第一应用窗口在所述第二GUI中的窗口参数。

5.根据权利要求3所述的方法,其特征在于,所述第一应用窗口在所述第一GUI中的窗口状态为还原状态,

其中,所述终端根据所述窗口状态确定所述第一应用窗口在所述第二GUI中的窗口参数,包括:

所述终端判断所述第一GUI中的第一应用窗口是否能够设置在所述绘制区域中;

若能够设置在所述绘制区域中,则所述终端将所述第一应用窗口在所述第一GUI中的第一尺寸作为第一应用窗口在所述第二GUI中的大小;并且,所述终端将所述绘制区域中具有所述第一尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置;

若无法设置在所述绘制区域中,则所述终端将所述第一应用窗口从所述第一尺寸缩小为第二尺寸,并且,所述终端将所述绘制区域中具有所述第二尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置。

6.根据权利要求5所述的方法,其特征在于,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2小于或等于所述绘制区域的高度D1,D1>

0,D2>0;

其中,所述终端将所述绘制区域中具有所述第一尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置,包括:

所述终端将所述第一GUI中第一应用窗口沿第一方向平移第一距离后的位置,确定为所述第一应用窗口在所述第二GUI中的位置;

其中,所述第一方向为远离所述软键盘的方向,所述第一距离为所述第一GUI中的第一应用窗口与所述软键盘在所述第一方向上重叠的距离。

7.根据权利要求5所述的方法,其特征在于,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2大于所述绘制区域的高度D1,D1>0,D2>

0;

其中,所述终端将所述第一应用窗口从所述第一尺寸缩小为第二尺寸,包括:所述终端将所述绘制区域的高度D1作为所述第一应用窗口在所述第二GUI中的高度,并将所述第一应用窗口在所述第一GUI中的宽度作为所述第一应用窗口在所述第二GUI中的宽度,得到所述第一应用窗口在所述第二GUI中的大小。

8.根据权利要求5所述的方法,其特征在于,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2大于所述绘制区域的高度D1,D1>0,D2>

0;

其中,所述终端将所述绘制区域中具有所述第二尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置,包括:

所述终端将所述第一GUI中第一应用窗口沿第一方向平移第二距离后的位置,确定为所述第一应用窗口在所述第二GUI中的位置;

其中,所述第一方向为远离所述软键盘的方向,所述第二距离为所述第一GUI中所述第一应用窗口与所述第一GUI顶部的距离。

9.根据权利要求1‑8中任一项所述的方法,其特征在于,所述第一GUI中还包括第二应用窗口,

其中,所述第二GUI中还包括与所述软键盘不重叠的所述第二应用窗口;所述第二GUI中所述软键盘的显示位置与所述第一GUI中所述第二应用窗口的显示位置部分或全部重叠。

10.根据权利要求9所述的方法,其特征在于,所述第二GUI中显示的所述第一应用窗口与所述第二应用窗口不重叠。

11.一种终端,其特征在于,所述终端支持显示多应用窗口,所述终端包括:显示单元,用于:显示第一GUI,所述第一GUI中包括第一应用窗口;

输入单元,用于:接收作用于所述第一应用窗口的输入操作;

所述显示单元,还用于:显示第二GUI,所述第二GUI中包括显示位置固定的软键盘,且所述第二GUI中除所述软键盘之外的区域内包括完整显示的所述第一应用窗口;

其中,所述第二GUI中所述软键盘的显示位置与所述第一GUI中所述第一应用窗口的显示位置部分或全部重叠。

12.根据权利要求11所述的终端,其特征在于,所述终端还包括:绘制单元,用于:在所述第二GUI中的固定位置绘制所述软键盘;

确定单元,用于:将所述第二GUI中除所述软键盘之外的区域确定为允许绘制应用窗口的绘制区域;

所述绘制单元,还用于:在所述绘制区域内绘制所述第一应用窗口。

13.根据权利要求12所述的终端,其特征在于,所述绘制单元,具体用于:查询所述第一应用窗口在所述第一GUI中的窗口状态;根据所述窗口状态确定所述第一应用窗口在所述第二GUI中的窗口参数,所述窗口参数包括所述第一应用窗口的大小和位置;使用所述窗口参数将所述第一应用窗口绘制在所述绘制区域内。

14.根据权利要求13所述的终端,其特征在于,所述第一应用窗口在所述第一GUI中的窗口状态为最大化状态,

所述确定单元,还用于:将所述绘制区域中最大矩形的位置和大小确定为所述第一应用窗口在所述第二GUI中的窗口参数。

15.根据权利要求13所述的终端,其特征在于,所述第一应用窗口在所述第一GUI中的窗口状态为还原状态,

所述确定单元,还用于:判断所述第一GUI中的第一应用窗口是否能够设置在所述绘制区域中;若能够设置在所述绘制区域中,则将所述第一应用窗口在所述第一GUI中的第一尺寸作为第一应用窗口在所述第二GUI中的大小;并且,所述终端将所述绘制区域中具有所述第一尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置;若无法设置在所述绘制区域中,则将所述第一应用窗口从所述第一尺寸缩小为第二尺寸,并且,所述终端将所述绘制区域中具有所述第二尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置。

16.根据权利要求15所述的终端,其特征在于,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2小于或等于所述绘制区域的高度D1,D1>0,D2>0;

所述确定单元,具体用于:将所述第一GUI中第一应用窗口沿第一方向平移第一距离后的位置,确定为所述第一应用窗口在所述第二GUI中的位置;其中,所述第一方向为远离所述软键盘的方向,所述第一距离为所述第一GUI中的第一应用窗口与所述软键盘在所述第一方向上重叠的距离。

17.根据权利要求15所述的终端,其特征在于,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2大于所述绘制区域的高度D1,D1>0,D2>0;

所述确定单元,具体用于:将所述绘制区域的高度D1作为所述第一应用窗口在所述第二GUI中的高度,并将所述第一应用窗口在所述第一GUI中的宽度作为所述第一应用窗口在所述第二GUI中的宽度,得到所述第一应用窗口在所述第二GUI中的大小;将所述第一GUI中第一应用窗口沿第一方向平移第二距离后的位置,确定为所述第一应用窗口在所述第二GUI中的位置;其中,所述第一方向为远离所述软键盘的方向,所述第二距离为所述第一GUI中所述第一应用窗口与所述第一GUI顶部的距离。

18.一种终端,其特征在于,包括:处理器、存储器、显示器和通信接口;

所述存储器用于存储计算机执行指令,所述处理器与所述存储器耦接,当所述终端运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述终端执行如权利要求1‑10中任一项所述的应用窗口的显示方法。

19.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在终端上运行时,使得所述终端执行如权利要求1‑10中任一项所述的应用窗口的显示方法。

20.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在终端上运行时,使得所述终端执行如权利要求1‑10中任一项所述的应用窗口的显示方法。

说明书 :

一种应用窗口的显示方法及终端

技术领域

[0001] 本申请实施例涉及显示技术领域,尤其涉及一种应用窗口的显示方法及终端。

背景技术

[0002] 目前,越来越多的终端(例如手机或平板电脑)在显示时可支持多应用窗口的分屏显示功能。以平板电脑为例,如图1所示,平板电脑可同时运行并显示应用A的应用窗口1以
及应用B的应用窗口2,这样用户可以同时打开和看到多个应用的界面。
[0003] 在终端没有连接实体键盘的场景下,如果用户希望向应用窗口1(或应用窗口2)的输入框11中输入字符串,仍如图1所示,用户可点击输入框11,使得终端调用输入法服务显
示软键盘12。而软键盘12一般固定从当前显示界面的底部弹出,固定占据当前显示界面的
部分显示空间。
[0004] 那么,当应用窗口1与软键盘12占用的显示空间重叠时,软键盘12便会遮挡应用窗口1中的部分显示内容。甚至,如图1所示,软键盘12可能会遮挡应用窗口1中的输入框11,使
得用户无法看到输入的内容,只能进行“盲打”,严重降低了终端的输入效率。

发明内容

[0005] 本申请的实施例提供一种应用窗口的显示方法及终端,可减小输入法软键盘对待输入的应用窗口产生的遮挡现象,提高终端的输入效率。
[0006] 为达到上述目的,本申请的实施例采用如下技术方案:
[0007] 第一方面,本申请的实施例提供一种应用窗口的显示方法,该方法可应用于支持显示多应用窗口的终端中,该方法具体包括:终端显示包括第一应用窗口的第一GUI;终端
接收作用于该第一应用窗口的输入操作;响应于该输入操作,终端显示第二GUI,第二GUI中
包括显示位置固定的软键盘,并且,该第二GUI中除该软键盘之外的区域内包括完整显示的
第一应用窗口;其中,第二GUI中软键盘的显示位置与第一GUI中第一应用窗口的显示位置
部分或全部重叠。
[0008] 也就是说,在同时显示第一应用窗口和为第一应用窗口提供输入法服务的软键盘时,第一应用窗口与软键盘之间不会出现重叠或遮挡的现象,即支持多应用窗口功能的终
端向各个应用窗口提供输入法服务时,不会因为软键盘对应用窗口的遮挡而影响用户的输
入效率和输入体验。
[0009] 在一种可能的设计方法中,终端显示第二GUI,具体包括:终端在第二GUI中的固定位置绘制该软键盘;终端将第二GUI中除该软键盘之外的区域确定为允许绘制应用窗口的
绘制区域;终端在该绘制区域内绘制第一应用窗口。由于绘制区域与软键盘显示的区域不
重叠,因此终端在绘制区域内绘制的第一应用窗口也不会与软键盘重叠,从而避免终端显
示软键盘时遮挡第一应用窗口。
[0010] 在一种可能的设计方法中,终端在上述绘制区域内绘制第一应用窗口,具体包括:终端查询第一应用窗口在上述第一GUI中的窗口状态;终端根据该窗口状态确定第一应用
窗口在第二GUI中的窗口参数,该窗口参数包括第一应用窗口的大小和位置;进而,终端使
用该窗口参数将第一应用窗口绘制在该绘制区域内。
[0011] 当第一应用窗口在第一GUI中的窗口状态为最大化状态时,终端根据上述窗口状态确定第一应用窗口在第二GUI中的窗口参数,具体包括:终端将上述绘制区域中最大矩形
的位置和大小确定为第一应用窗口在第二GUI中的窗口参数。
[0012] 当第一应用窗口在第一GUI中的窗口状态为还原状态时,终端根据上述窗口状态确定第一应用窗口在第二GUI中的窗口参数,具体包括:终端判断第一GUI中的第一应用窗
口是否能够设置在该绘制区域中;若能够设置在该绘制区域中,则终端将第一应用窗口在
第一GUI中的第一尺寸作为第一应用窗口在第二GUI中的大小;并且,终端将该绘制区域中
具有第一尺寸的位置作为第一应用窗口在第二GUI中的位置;若无法设置在该绘制区域中,
则终端将第一应用窗口从第一尺寸缩小为第二尺寸,并且,终端将该绘制区域中具有第二
尺寸的位置作为第一应用窗口在第二GUI中的位置。
[0013] 示例性的,上述软键盘固定显示在第二GUI的底部,上述第一应用窗口在第一GUI中的高度D2小于或等于该绘制区域的高度D1;那么,终端将上述绘制区域中具有第一尺寸
的位置作为第一应用窗口在第二GUI中的位置,具体包括:终端将第一GUI中第一应用窗口
沿第一方向(第一方向为远离该软键盘的方向)平移第一距离(第一距离为第一GUI中的第
一应用窗口与该软键盘在第一方向上重叠的距离)后的位置,确定为第一应用窗口在第二
GUI中的位置。
[0014] 示例性的,上述软键盘固定显示在第二GUI的底部,上述第一应用窗口在第一GUI中的高度D2大于该绘制区域的高度D1;那么,终端将第一应用窗口从第一尺寸缩小为第二
尺寸,具体包括:终端将上述绘制区域的高度D1作为第一应用窗口在第二GUI中的高度,并
将第一应用窗口在第一GUI中的宽度作为第一应用窗口在第二GUI中的宽度,得到第一应用
窗口在第二GUI中的大小。
[0015] 另外,终端将上述绘制区域中具有第二尺寸的位置作为第一应用窗口在第二GUI中的位置,具体包括:终端将第一GUI中第一应用窗口沿第一方向平移第二距离后的位置,
确定为第一应用窗口在第二GUI中的位置;其中,第一方向为远离该软键盘的方向,第二距
离为第一GUI中第一应用窗口与第一GUI顶部的距离。
[0016] 在一种可能的设计方法中,上述第一GUI中还包括第二应用窗口,其中,第二GUI中还包括与该软键盘不重叠的第二应用窗口;在第二GUI中该软键盘的显示位置与第一GUI中
第二应用窗口的显示位置部分或全部重叠。也就是说,在运行有软键盘的应用场景下,终端
在绘制任意应用窗口时均可将该应用窗口绘制在不与软键盘重叠的绘制区域。这样,不仅
仅是软键盘提供输入法服务的第一应用窗口在显示时不会被软键盘遮挡,终端屏幕中的其
他应用窗口(例如第二应用窗口)在显示时也不会被软键盘遮挡。
[0017] 在一种可能的设计方法中,第二GUI中显示的第一应用窗口与第二应用窗口不重叠,从而避免显示多应用窗口时多个应用窗口之间的遮挡现象。
[0018] 第二方面,本申请实施例提供一种终端,可支持显示多应用窗口,该终端包括:显示单元,用于:显示第一GUI,第一GUI中包括第一应用窗口;输入单元,用于:接收作用于第
一应用窗口的输入操作;该显示单元,还用于:显示第二GUI,第二GUI中包括显示位置固定
的软键盘,且第二GUI中除该软键盘之外的区域内包括完整显示的第一应用窗口;其中,第
二GUI中该软键盘的显示位置与第一GUI中第一应用窗口的显示位置部分或全部重叠。
[0019] 在一种可能的设计方法中,终端还包括:绘制单元,用于:在第二GUI中的固定位置绘制该软键盘;确定单元,用于:将第二GUI中除该软键盘之外的区域确定为允许绘制应用
窗口的绘制区域;该绘制单元,还用于:在该绘制区域内绘制第一应用窗口。
[0020] 在一种可能的设计方法中,该绘制单元,具体用于:查询第一应用窗口在第一GUI中的窗口状态;根据该窗口状态确定第一应用窗口在第二GUI中的窗口参数,该窗口参数包
括第一应用窗口的大小和位置;使用该窗口参数将第一应用窗口绘制在该绘制区域内。
[0021] 在一种可能的设计方法中,第一应用窗口在第一GUI中的窗口状态为最大化状态,该确定单元,还用于:将该绘制区域中最大矩形的位置和大小确定为第一应用窗口在第二
GUI中的窗口参数。
[0022] 在一种可能的设计方法中,第一应用窗口在第一GUI中的窗口状态为还原状态,该确定单元,还用于:判断第一GUI中的第一应用窗口是否能够设置在该绘制区域中;若能够
设置在该绘制区域中,则将第一应用窗口在第一GUI中的第一尺寸作为第一应用窗口在第
二GUI中的大小;并且,终端将该绘制区域中具有第一尺寸的位置作为第一应用窗口在第二
GUI中的位置;若无法设置在该绘制区域中,则将第一应用窗口从第一尺寸缩小为第二尺
寸,并且,终端将该绘制区域中具有第二尺寸的位置作为第一应用窗口在第二GUI中的位
置。
[0023] 在一种可能的设计方法中,该软键盘固定显示在第二GUI的底部,第一应用窗口在第一GUI中的高度D2小于或等于该绘制区域的高度D1;该确定单元,具体用于:将第一GUI中
第一应用窗口沿第一方向平移第一距离后的位置,确定为第一应用窗口在第二GUI中的位
置;其中,第一方向为远离该软键盘的方向,第一距离为第一GUI中的第一应用窗口与该软
键盘在第一方向上重叠的距离。
[0024] 在一种可能的设计方法中,该软键盘固定显示在第二GUI的底部,第一应用窗口在第一GUI中的高度D2大于该绘制区域的高度D1;该确定单元,具体用于:将该绘制区域的高
度D1作为第一应用窗口在第二GUI中的高度,并将第一应用窗口在第一GUI中的宽度作为第
一应用窗口在第二GUI中的宽度,得到第一应用窗口在第二GUI中的大小;将第一GUI中第一
应用窗口沿第一方向平移第二距离后的位置,确定为第一应用窗口在第二GUI中的位置;其
中,第一方向为远离该软键盘的方向,第二距离为第一GUI中第一应用窗口与第一GUI顶部
的距离。
[0025] 第三方面,本申请的实施例提供一种终端,包括:处理器、存储器、显示器和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器耦合,当终端运行时,该处理
器执行该存储器存储的该计算机执行指令,以使终端执行上述任一项应用窗口的显示方
法。
[0026] 第四方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在上述任一项终端上运行时,使得终端执行上述任一项应用窗口
的显示方法。
[0027] 第五方面,本申请实施例提供一种包含指令的计算机程序产品,当其在上述任一项终端上运行时,使得终端执行上述任一项应用窗口的显示方法。
[0028] 本申请的实施例中,上述终端内各部件的名字对设备本身不构成限定,在实际实现中,这些部件可以以其他名称出现。只要各个部件的功能和本申请的实施例类似,即属于
本申请权利要求及其等同技术的范围之内。
[0029] 另外,第二方面至第五方面中任一种设计方式所带来的技术效果可参见上述第一方面中不同设计方法所带来的技术效果,此处不再赘述。

附图说明

[0030] 图1为现有技术中多应用窗口的显示场景示意图一;
[0031] 图2为本申请实施例提供的一种终端的结构示意图一;
[0032] 图3为本申请实施例提供的一种安卓操作系统的架构示意图;
[0033] 图4为现有技术中多应用窗口的显示场景示意图二;
[0034] 图5为本申请实施例提供的一种应用窗口的显示方法的流程示意图一;
[0035] 图6为本申请实施例提供的一种应用窗口的显示方法的场景示意图一;
[0036] 图7为本申请实施例提供的一种应用窗口的显示方法的场景示意图二;
[0037] 图8为本申请实施例提供的一种应用窗口的显示方法的场景示意图三;
[0038] 图9为本申请实施例提供的一种应用窗口的显示方法的流程示意图二;
[0039] 图10为本申请实施例提供的一种应用窗口的显示方法的场景示意图四;
[0040] 图11为本申请实施例提供的一种应用窗口的显示方法的场景示意图五;
[0041] 图12为本申请实施例提供的一种应用窗口的显示方法的场景示意图六;
[0042] 图13为本申请实施例提供的一种应用窗口的显示方法的流程示意图三;
[0043] 图14为本申请实施例提供的一种应用窗口的显示方法的场景示意图七;
[0044] 图15为本申请实施例提供的一种应用窗口的显示方法的场景示意图八;
[0045] 图16为本申请实施例提供的一种应用窗口的显示方法的流程示意图四;
[0046] 图17为本申请实施例提供的一种终端的结构示意图二;
[0047] 图18为本申请实施例提供的一种终端的结构示意图三。

具体实施方式

[0048] 以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含
义是两个或两个以上。
[0049] 本申请实施例提供的应用窗口的显示方法可应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、笔记
本电脑、车载设备、无人机、超级移动个人计算机(ultra‑mobile personal computer,
UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等支持显示多应用窗口
的任意终端上,本申请实施例对此不作任何限制。
[0050] 如图2所示,本申请实施例中的终端可以为平板电脑100。下面以平板电脑100为例对实施例进行具体说明。应该理解的是,图示平板电脑100仅是上述终端的一个范例,并且
平板电脑100可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部
件,或者可以具有不同的部件配置。
[0051] 如图2所示,平板电脑100具体可以包括:处理器101、射频(radio frequency,RF)电路102、存储器103、触摸屏104、蓝牙装置105、一个或多个传感器106、Wi‑Fi装置107、定位
装置108、音频电路109、外设接口110以及电源系统111等部件。这些部件可通过一根或多根
通信总线或信号线(图2中未示出)进行通信。本领域技术人员可以理解,图2中示出的硬件
结构并不构成对平板电脑的限定,平板电脑100可以包括比图示更多或更少的部件,或者组
合某些部件,或者不同的部件布置。
[0052] 下面结合图2对平板电脑100的各个部件进行具体的介绍:
[0053] 处理器101是平板电脑100的控制中心,利用各种接口和线路连接平板电脑100的各个部分,通过运行或执行存储在存储器103内的应用程序,以及调用存储在存储器103内
的数据,执行平板电脑100的各种功能和处理数据。在一些实施例中,处理器101可包括一个
或多个处理单元;举例来说,处理器101可以是华为技术有限公司制造的麒麟960芯片。在本
申请一些实施例中,上述处理器101还可以包括指纹验证芯片,用于对采集到的指纹进行验
证。
[0054] 射频电路102可用于在收发信息或通话过程中,无线信号的接收和发送。特别地,射频电路102可以将基站的下行数据接收后,给处理器101处理;另外,将涉及上行的数据发
送给基站。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声
放大器、双工器等。此外,射频电路102还可以通过无线通信和其他设备通信。所述无线通信
可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分
多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
[0055] 存储器103用于存储应用程序以及数据,处理器101通过运行存储在存储器103的应用程序以及数据,执行平板电脑100的各种功能以及数据处理。存储器103主要包括存储
程序区以及存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序
(比如声音播放功能、图像播放功能等);存储数据区可以存储根据使用平板电脑100时所创
建的数据(比如音频数据、电话本等)。此外,存储器103可以包括高速随机存取存储器
(ramdom access memory,RAM),还可以包括非易失存储器,例如磁盘存储器件、闪存器件或
其他易失性固态存储器件等。存储器103可以存储各种操作系统,例如,苹果公司所开发的
操作系统,谷歌公司所开发的 操作系统等。上述存储器103可以是独立的,通
过上述通信总线与处理器101相连接;存储器103也可以和处理器101集成在一起。
[0056] 触摸屏104具体可以包括触控板104‑1和显示器104‑2。
[0057] 其中,触控板104‑1可采集平板电脑100的用户在其上或附近的触摸操作(比如用户使用手指、触控笔等任何适合的物体在触控板104‑1上或在触控板104‑1附近的操作),并
将采集到的触摸信息发送给其他器件(例如处理器101)。其中,用户在触控板104‑1附近的
触摸操作可以称之为悬浮触控;悬浮触控可以是指,用户无需为了选择、移动或拖动目标
(例如图标等)而直接接触触控板,而只需用户位于终端附近以便执行所想要的功能。此外,
可以采用电阻式、电容式、红外线以及表面声波等多种类型来实现触控板104‑1。
[0058] 显示器(也可称为显示屏)104‑2可用于显示由用户输入的信息或提供给用户的信息以及平板电脑100的各种菜单。可以采用液晶显示器、有机发光二极管等形式来配置显示
器104‑2。触控板104‑1可以覆盖在显示器104‑2之上,当触控板104‑1检测到在其上或附近
的触摸操作后,传送给处理器101以确定触摸操作的类型,随后处理器101可以根据触摸操
作的类型在显示器104‑2上提供相应的视觉输出。虽然在图2中,触控板104‑1与显示屏104‑
2是作为两个独立的部件来实现平板电脑100的输入和输出功能,但是在某些实施例中,可
以将触控板104‑1与显示屏104‑2集成而实现平板电脑100的输入和输出功能。
[0059] 可以理解的是,触摸屏104是由多层的材料堆叠而成,本申请实施例中只展示出了触控板(层)和显示屏(层),其他层在本申请实施例中不予记载。另外,触控板104‑1可以以
全面板的形式配置在平板电脑100的正面,显示屏104‑2也可以以全面板的形式配置在平板
电脑100的正面,这样在平板电脑的正面就能够实现无边框的结构。
[0060] 平板电脑100还可以包括蓝牙装置105,用于实现平板电脑100与其他短距离的终端(例如平板电脑、智能手表等)之间的数据交换。本申请实施例中的蓝牙装置可以是集成
电路或者蓝牙芯片等器件。
[0061] 平板电脑100还可以包括至少一种传感器106,比如指纹采集器件112、光传感器、运动传感器以及其他传感器。具体地,可以在平板电脑100的背面(例如后置摄像头的下方)
配置指纹采集器件112,或者在平板电脑100的正面(例如触摸屏104的下方)配置指纹采集
器件112。又例如,可以在触摸屏104中配置指纹采集器件112来实现指纹识别功能,即指纹
采集器件112可以与触摸屏104集成在一起来实现平板电脑100的指纹识别功能;光传感器
可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节触
摸屏104的显示器的亮度,接近传感器可在平板电脑100移动到耳边时,关闭显示器的电源。
作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静
止时可检测出重力的大小及方向,可用于识别平板电脑姿态的应用(比如横竖屏切换、相关
游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于平板电脑100还可
配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0062] Wi‑Fi装置107,用于为平板电脑100提供遵循Wi‑Fi相关标准协议的网络接入,平板电脑100可以通过Wi‑Fi装置107接入到Wi‑Fi接入点,进而帮助用户收发电子邮件、浏览
网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。在其他一些实施例中,该
Wi‑Fi装置107也可以作为Wi‑Fi无线接入点,可以为其他终端提供Wi‑Fi网络接入。
[0063] 定位装置108,用于为平板电脑100提供地理位置。可以理解的是,该定位装置108具体可以是全球定位系统(global positioning system,GPS)或北斗卫星导航系统、俄罗
斯GLONASS等定位系统的接收器。定位装置108在接收到上述定位系统发送的地理位置后,
将该信息发送给处理器101进行处理,或者发送给存储器103进行保存。在另外的一些实施
例中,该定位装置108还可以是辅助全球卫星定位系统(assisted global positioning 
system,AGPS)的接收器,AGPS系统通过作为辅助服务器来协助定位装置108完成测距和定
位服务,在这种情况下,辅助定位服务器通过无线通信网络与终端例如平板电脑100的定位
装置108(即GPS接收器)通信而提供定位协助。在另外的一些实施例中,该定位装置108也可
以是基于Wi‑Fi接入点的定位技术。由于每一个Wi‑Fi接入点都有一个全球唯一的媒体介入
控制(media access control,MAC)地址,终端在开启Wi‑Fi的情况下即可扫描并收集周围
的Wi‑Fi接入点的广播信号,因此可以获取到Wi‑Fi接入点广播出来的MAC地址;终端将这些
能够标示Wi‑Fi接入点的数据(例如MAC地址)通过无线通信网络发送给位置服务器,由位置
服务器检索出每一个Wi‑Fi接入点的地理位置,并结合Wi‑Fi广播信号的强弱程度,计算出
该终端的地理位置并发送到该终端的定位装置108中。
[0064] 音频电路109、扬声器113、麦克风114可提供用户与平板电脑100之间的音频接口。音频电路109可将接收到的音频数据转换后的电信号,传输到扬声器113,由扬声器113转换
为声音信号输出;另一方面,麦克风114将收集的声音信号转换为电信号,由音频电路109接
收后转换为音频数据,再将音频数据输出至RF电路102以发送给比如另一平板电脑,或者将
音频数据输出至存储器103以便进一步处理。
[0065] 外设接口110,用于为外部的输入/输出设备(例如键盘、鼠标、外接显示器、外部存储器、用户识别模块卡等)提供各种接口。例如通过通用串行总线(universal serial bus,
USB)接口与鼠标连接,通过用户识别模块卡卡槽上的金属触点与电信运营商提供的用户识
别模块卡(subscriber identification module,SIM)卡进行连接。外设接口110可以被用
来将上述外部的输入/输出外围设备耦接到处理器101和存储器103。
[0066] 平板电脑100还可以包括给各个部件供电的电源装置111(比如电池和电源管理芯片),电池可以通过电源管理芯片与处理器101逻辑相连,从而通过电源装置111实现管理充
电、放电、以及功耗管理等功能。
[0067] 尽管图2未示出,平板电脑100还可以包括摄像头(前置摄像头和/或后置摄像头)、闪光灯、微型投影装置、近场通信(NFC near field communication,NFC)装置等,在此不予
赘述。
[0068] 示例性的,上述平板电脑100的操作系统可以为Android或IOS等操作系统,以Android操作系统为例,如图3所示,Android操作系统可以划分为四层,从高层到低层分别
是应用程序层201(即APP层)、应用程序框架层202(即framework层)、系统运行库层203(即
Libraries或native层)和Linux内核层204。
[0069] 其中,Linux内核层204可用于控制平板电脑100的安全(security),存储器管理(memory management),程序管理(process management),网络堆栈(network stack),驱动
程序模型(driver model)等功能。Linux内核层204同时也作为硬件(例如,CPU、网卡以及内
存等)和软件栈之间的抽象层,它可隐藏具体硬件细节从而为上层(系统运行库层203、应用
程序框架层202以及应用程序层201)提供统一的服务。
[0070] 例如,仍如图3所示,Linux内核层204可以包括系统资源管理器321和/或设备驱动程序323。系统资源管理器321可以包括进程管理器(未示出)、存储器管理器(未示出)和文
件系统管理器(未示出)。系统资源管理器321可以执行对系统资源的控制、分配、恢复等。设
备驱动程序323可以包括例如显示器驱动程序(未示出)、相机驱动程序(未示出)、蓝牙驱动
程序(未示出)、共享存储器驱动程序(未示出)、USB驱动程序(未示出)、键区驱动程序(未示
出)、Wi‑Fi驱动程序(未示出)和/或音频驱动程序(未示出)。此外,根据本申请公开的实施
例,设备驱动程序323可以包括进程间通信(IPC)驱动程序(未示出)。
[0071] 系统运行库层203中包含一些C/C++库,例如,媒体库、系统C库以及显示管理库(surface manager)等,这些库能被Android系统中不同的组件使用,使得应用在运行期间
通过使用编程语言来添加新功能。根据本申请公开的实施例,系统运行库层203可以执行与
输入和输出、存储器的管理、算术功能等相关的功能。
[0072] framework层202为开发人员提供了一个可以完全访问应用程序所使用的API框架。具体的,famework层202为开发应用程序提供了非常多的API,framework层202可以通过
API向APP层201中的应用(APP)提供功能,以使应用能够高效地使用电子设备内的有限系统
资源。
[0073] 例如,如图3中所示,framework层202提供的API框架中包括以下至少一项:应用管理器341、窗口管理器342、多媒体管理器343、资源管理器344、电源管理器345、数据库管理
器346、包管理器347、连接管理器348、通知管理器349、位置管理器340、图形管理器341、安
全管理器352和任何其它合适和/或类似的管理器。
[0074] 在本申请实施例中,平板电脑100可支持多应用窗口的显示功能,在多应用窗口中,每个应用窗口对应一个应用(应用以Activity的形式运行在操作系统中)。当平板电脑
100同时打开多个应用窗口时,这多个应用窗口分别对应的多个Activity同时可见,但只有
用户当前操作的一个Activity是最顶层的(即焦点Activity)。
[0075] 上述多应用窗口功能的实现主要依赖于framework层202中应用管理器341提供的应用管理服务(ActivityManagerService)以及窗口管理器342提供的窗口管理服务
(WindowManagerService)这两个系统服务。
[0076] 其中,ActivityManagerService负责管理每个应用的生命周期。对于每一个Activity,在ActivityManagerService中都会有一个与之对应的应用记录
(ActivityRecord),这个ActivityRecord记录了该应用的Activity的状态。
ActivityManagerService会利用这个ActivityRecord作为标识,对应用的Activity进程调
度。
[0077] WindowManagerService负责管理在屏幕上使用的图形用户界面(graphical user interface,GUI)资源,具体可包括:窗口的创建和销毁、窗口的显示与隐藏、窗口的布局、焦
点的管理以及输入法和壁纸管理等。
[0078] 每一个Activity都会有一个属于自己的应用窗口,WindowManagerService会定期刷新该应用窗口中的显示内容和窗口参数(例如应用窗口的大小、位置等)。并且,
WindowManagerService可以为每一个应用窗口创建一个与之对应的WindowState。
WindowManagerService以此标示该应用窗口,并用这个WindowState来存储、查询和控制该
应用窗口的状态。
[0079] 例如,WindowManagerService可以在Window 1的WindowState中查询Window 1的状态为全屏状态、最大化状态、最小化状态还是还原状态。其中,还原状态是指应用窗口在
系统默认或用户设置的大小下显示的可拖动的状态。
[0080] 应用程序层201主要包括使用java语言编写的APP,用户在操作APP上的操作界面时,通过调用framework层202中的相关API,可与系统运行库层203或Linux内核层204进行
交互,实现与该操作界面相对应的功能。
[0081] 示例性的,仍如图3所示,应用程序层201中可以包括系统级应用和/或第三方应用。例如,主页应用371、拨号应用372、微信应用373、地图应用374、浏览器应用375、相机应
用376、闹钟应用377、联系人应用378、语音拨号应用379、电子邮件应用380、日历应用381、
媒体播放器应用382、相册应用383、时钟应用384以及任意其它合适和/或类似的应用。
[0082] 另外,本申请实施例中涉及的多应用窗口的显示功能,是指该终端具有在同一时刻显示多个应用窗口的能力。但需要说明的是,如果用户仅开启一个应用,则该终端在运行
时也可以只显示这一个应用的应用窗口。
[0083] 那么,以终端运行上述微信应用373为例,如图4中的(a)所示,微信应用373的应用窗口401中包括标题栏402以及具体的聊天界面403。应用窗口401当前处于还原状态,应用
窗口401的标题栏402中还设置有最大化按钮41、最小化按钮42以及关闭按钮43,用户可以
通过点击这些按钮改变应用窗口401的状态。
[0084] 另外,聊天界面403中设置有输入框44,用户可通过输入法应用提供的软键盘向输入框44中输入聊天信息。当检测到用户点击输入框44时,如图4中的(b)所示,现有技术中终
端可将软键盘404显示在屏幕中的固定位置,例如,显示在屏幕的底部。那么,如果软键盘
404的高度H1大于应用窗口401距离屏幕底部的距离H2,则软键盘404会遮挡住应用窗口401
的部分或全部显示内容,降低了输入效率和用户的输入体验。
[0085] 对此,在本申请实施例提供的一种应用窗口的显示方法中,终端在绘制各个应用窗口时,可以实时检测当前绘制的应用窗口(例如应用窗口A)是否打开了输入法应用提供
的软键盘。如果打开了输入法应用提供的软键盘,则终端可以将屏幕中除了软键盘之外的
区域作为允许绘制该应用窗口的绘制区域,进而调整应用窗口A的大小或位置等窗口参数,
以便终端在该绘制区域内绘制应用窗口A。
[0086] 这样一来,在同时显示应用窗口A和软键盘时,应用窗口A与软键盘之间不会出现重叠或遮挡的现象,即支持多应用窗口功能的终端向各个应用窗口提供输入法服务时,不
会因为软键盘对应用窗口的遮挡而影响用户的输入效率和输入体验。
[0087] 需要说明的是,本申请实施例中所谓的软键盘与应用窗口之间的遮挡或重叠现象,是指由于软键盘在显示时占据了屏幕中的一定显示空间,而导致应用窗口的边界无法
完整显示在屏幕中的现象。在本申请实施例中,软键盘与应用窗口之间不遮挡或不重叠,指
的是:当终端在屏幕中同时显示应用窗口和软键盘时,应用窗口的所有边界可完整显示在
软键盘之外的区域内。
[0088] 以下,将详细阐述本申请实施例提供的一种应用窗口的显示方法,如图5所示,该方法包括:
[0089] S501、终端检测当前是否运行有输入法应用提供的软键盘。
[0090] 若是,则终端可继续执行下述步骤S502;否则,终端可沿用现有技术绘制屏幕中待绘制的目标应用窗口。
[0091] 一般,终端在显示图像的过程中会按照一个固定的帧率(例如,60赫兹)刷新屏幕中的每一帧显示画面。而绘制每一帧显示画面时,需要绘制该显示画面中的各个应用窗口,
那么,终端在绘制每一帧显示画面中的每个应用窗口时均可参照步骤S501‑S505提供的应
用窗口的显示方法。
[0092] 当然,终端也可以在某一应用窗口中的显示内容发生变化,或者在某一应用窗口接收到用户输入的点击、长按或者滑动等操作时参照步骤S501‑S505提供的方法绘制该应
用窗口。
[0093] 示例性的,以待绘制的应用窗口为目标应用窗口举例,在绘制目标应用窗口之前,终端可通过获取当前运行的应用的标识(例如应用的包名,主线程的ID等),查询当前运行
的应用中是否包括输入法应用。
[0094] 输入法应用运行时,一般是由framework层中的InputMethodManager(输入法管理器)向应用提供输入法服务的,输入法管理器可以对软键盘的运行状态进行管理。那么,终
端可以向输入法管理器请求查询当前运行的输入法应用是否打开了软键盘。
[0095] 又或者,终端还可预先设置一个用于指示输入法应用运行状态的标志位,例如,当标志位取值为1时表示输入法应用的软键盘打开,当标志位取值为0时表示输入法应用的软
键盘关闭。那么,当输入法应用打开软键盘时,输入法管理器可将该标志位的取值设置为1,
当输入法应用关闭软键盘时,输入法管理器可将该标志位的取值设置为0。这样,终端在绘
制目标应用窗口之前,通过读取该标志位的取值可以确定出当前是否运行有软键盘。
[0096] 又或者,在绘制目标应用窗口之前,终端还可以获取当前屏幕中显示的具体显示内容。进而,终端可以检测该显示内容中是否包括输入法应用提供的软键盘,从而确定当前
是否运行有软键盘。
[0097] 在本申请的另一些实施例中,当输入法应用的软键盘打开时,可触发输入法管理器向窗口管理器发送键盘打开事件,后续窗口管理器可按照下述步骤S502‑S505绘制每个
目标应用窗口。而当输入法应用的软键盘关闭时,可触发输入法管理器向窗口管理器发送
键盘关闭事件,那么,后续窗口管理器可沿用现有技术绘制屏幕中待绘制的每个目标应用
窗口。
[0098] S502、终端判断上述软键盘作用的应用窗口是否为待绘制的目标应用窗口。
[0099] 若是,则终端可继续执行下述步骤S503;否则,终端可沿用现有技术绘制屏幕中待绘制的目标应用窗口。
[0100] 在步骤S502中,如果检测出当前运行有软键盘,则终端可进一步判断上述软键盘在为哪个应用窗口提供输入法服务,这个被提供输入法服务的应用窗口是否为终端准备绘
制的上述目标应用窗口。
[0101] 示例性的,如果终端本次绘制的显示画面中仅包括一个应用窗口,则该应用窗口即为终端准备绘制的目标应用窗口,且当前软键盘提供输入法服务的应用窗口也为该目标
应用窗口。
[0102] 或者,如果本次绘制的显示画面中包括多个应用窗口,则当前软键盘提供输入法服务的应用窗口一般为处于应用栈最顶层的焦点应用(即焦点Activity)的应用窗口。那
么,终端可以获取焦点应用的标识(例如焦点应用的包名)以及终端准备绘制的目标应用窗
口的标识,当焦点应用的标识与目标应用窗口的标识相同时,可判断出当前软键盘作用的
应用窗口即为待绘制的目标应用窗口。
[0103] S503、终端根据上述软键盘在屏幕中的位置和大小,调整屏幕中允许绘制应用窗口的绘制区域。
[0104] 在步骤S503中,如果判断出当前软键盘作用的应用窗口即为上述目标应用窗口,则终端可获取上述软键盘在屏幕中的位置和大小。如图6所示,在大小为1280x800的屏幕
601中软键盘602的大小为1280x200,且软键盘602位于屏幕601的底部。
[0105] 其中,上述1280x800是指屏幕601中包括1280x800个像素点,1280x200是指软键盘602包括1280x200个像素点,后续实施例中均以像素点为单位表示应用窗口或屏幕的尺寸。
另外,本发明各实施例中所述的屏幕尺寸、软键盘尺寸、绘制区域大小均为示例性说明,在
具体实施方式中,可以根据终端的具体情况确定屏幕尺寸和软键盘尺寸。
[0106] 由于终端默认的允许绘制应用窗口的绘制区域为屏幕601上的任意位置,即1280x800大小的整个屏幕,那么,如果将软键盘602作用的目标应用窗口绘制在这个绘制区
域中,则有可能会出现目标应用窗口被软键盘602遮挡的现象。
[0107] 因此,为了避免软键盘602遮挡其作用的目标应用窗口,终端可以将屏幕601中除软键盘602之外的区域,即位于软键盘602上方大小为1280x600的区域,确定为允许绘制目
标应用窗口的绘制区域。后续,终端可在调整后的绘制区域中绘制目标应用窗口。
[0108] 其中,上述软键盘602还可以设置在屏幕601的其他位置,例如,如图7中的(a)所示,软键盘602还可以设置在屏幕601的顶部,此时,终端可以将屏幕601中位于软键盘602下
方1280x600的区域作为上述绘制区域;或者,如图7中的(b)所示,还可以沿屏幕601的侧边
设置大小为320*800的软键盘602,此时,终端可以将屏幕601中与软键盘602相邻960x800的
区域作为上述绘制区域。
[0109] 另外,由于软键盘不一定是沿屏幕的边界设置的,并且,软键盘的形状也不一定是规则的形状,因此,屏幕中除去软键盘之外的区域可能是不规则的区域。如图8所示,软键盘
包括分别设置在屏幕两侧数字键盘801和字母键盘802,那么,屏幕中除去软键盘之外的区
域是一个凸字形的不规则形状,而应用窗口一般都是规则的矩形,那么,终端可以将该凸字
形区域中包含的最大矩形803确定为上述绘制区域。
[0110] 进一步地,当终端确定出允许绘制应用窗口的绘制区域后,可调用framework层中的窗口管理服务(WindowManagerService)修改layoutWindowLw()函数中用于定义绘制区
域的绘制参数,使得后续终端能够在该绘制区域内绘制应用窗口。
[0111] 例如,该绘制参数可以包括用于表示窗口的父窗大小的pf(parent frame)参数,用于表示屏幕大小的df(device frame)参数,用于表示窗口内容区域大小的cf(content 
frame)参数,用于表示窗口可见区域大小的vf(visible frame)参数,或者用于表示装饰区
域大小的dcf(décor frame)参数等,本申请实施例对此不做任何限制。
[0112] S504、终端计算在上述绘制区域中绘制目标应用窗口时使用的窗口参数。
[0113] 在步骤S504中,当终端确定了用于绘制应用窗口的绘制区域后,便可以该绘制区域为基础,计算在上述绘制区域中绘制目标应用窗口所需的窗口大小、窗口位置等窗口参
数,以便后续终端可按照计算出的窗口参数绘制该目标应用窗口。
[0114] 示例性的,如图9所示,终端可以先查询待绘制的目标应用窗口的状态。例如,WindowManagerService可以在为目标应用窗口创建的WindowState中查询目标应用窗口为
最大化状态或者还原状态。
[0115] 当目标应用窗口的状态为最大化状态时,说明此时目标应用窗口需要最大化的绘制在上述绘制区域。那么,仍如图9所示,终端可以将上述绘制区域在屏幕中的位置和大小
作为目标应用窗口的窗口参数。示例性的,如图10所示,仍以软键盘602上方大小为
1280x600的区域为绘制区域举例,终端可以将该绘制区域的大小(1280x600)作为目标应用
窗口的大小,将该绘制区域的位置作为目标应用窗口的位置,用以显示最大化状态的目标
应用窗口。
[0116] 当目标应用窗口的状态为还原状态时,目标应用窗口的位置和大小是用户手动设置或系统默认的,此时,仍如图9所示,终端可以先查询在上一次绘制(即软键盘被打开之
前)该目标应用窗口时目标应用窗口是否完全落入步骤S503确定的绘制区域中。如果完全
落入上述绘制区域中,即目标应用窗口的边界均在绘制区域内,则说明此时显示的软键盘
不会遮挡本次绘制的目标应用窗,因此,终端可将上一次绘制该目标应用窗口时使用的窗
口参数确定为本次绘制目标应用窗口时使用的窗口参数,进而按照该窗口参数在绘制区域
绘制目标应用窗口。
[0117] 相应的,如果上一次绘制上述目标应用窗口时该目标应用窗口未完全落入步骤S503确定的绘制区域,则说明此时显示的软键盘会遮挡本次绘制的目标应用窗。那么,终端
可继续判断本次绘制目标应用窗口时是否需要改变目标应用窗口的大小。
[0118] 例如,如果上一次绘制上述目标应用窗口时的窗口大小可以完全设置在上述绘制区域中,则说明本次在不需要改变目标应用窗口的大小的情况下,仅通过改变目标应用窗
口的位置便可将目标应用窗口绘制在绘制区域内。如果上一次绘制上述目标应用窗口时的
窗口大小无法设置在上述绘制区域中,则说明需要在上一次绘制的目标应用窗口的基础上
缩小目标应用窗口的大小,并改变目标应用窗口的位置,才能使得终端将目标应用窗口绘
制在绘制区域内。
[0119] 示例性的,如图11中的(a)所示,虚线框内的区域(大小为1280x200)一般为终端显示上述软键盘602的位置,目标应用窗口的高度D2=500,且目标应用窗口与该虚线框有部
分重叠,重叠部分的高度D3=100。绘制区域位于软键盘602的上部且大小为1280x600,也就
是说,绘制区域的宽度K=1280,绘制区域的高度D1=600。那么,由于D1>D2,因此,在不改
变目标应用窗口大小的情况下终端可以将目标应用窗口绘制在上述绘制区域内。那么,本
次绘制目标应用窗口时目标应用窗口的大小仍为用户手动设置或系统默认的大小,而目标
应用窗口的位置可以为绘制区域中的任意位置。
[0120] 示例性的,如图11中的(b)所示,终端可以将目标应用窗口向上平移D3距离后的位置作为本次绘制目标应用窗口时的窗口位置,并将上一次绘制目标应用窗口时的窗口大小
作为本次绘制目标应用窗口时的窗口大小,绘制该目标应用窗口。那么,如图11中的(b)所
示,当用户点击目标应用窗口中的输入框时,触发终端显示软键盘602,此时目标应用窗口
也同时向上平移至软键盘602的上部,从而避免软键盘602对目标应用窗口的遮挡。
[0121] 当然,只要能够保证目标应用窗口的各条边界不超出绘制区域,终端还可以将目标应用窗口的位置设置在绘制区域的其他位置,本申请实施例对此不作任何限制。
[0122] 相应的,当上述绘制区域的高度D1小于目标应用窗口的高度D2时,除了改变目标应用窗口的位置,终端还需要改变目标应用窗口的大小以使得目标应用窗口能够被绘制在
上述绘制区域中。
[0123] 示例性的,如图12中的(a)所示,虚线框内的区域(大小为1280x200)一般为终端显示上述软键盘602的位置,位于软键盘602上部的绘制区域的高度D1=600。而此时目标应用
窗口的高度D2=700。由于D2>D1,因此即使将目标应用窗口向上平移D4距离使得目标应用
窗口位于屏幕的最顶端,软键盘602弹出时仍然会遮挡目标应用窗口中的部分内容。那么,
为了使得目标应用窗口能够绘制在绘制区域内,终端除了改变目标应用窗口的位置这一窗
口参数外,还可以改变目标应用窗口的大小这一窗口参数。
[0124] 示例性的,终端可以先将目标应用窗口向上平移D4距离,使得目标应用窗口位于屏幕的顶部,再将目标应用窗口的高度从D2=700压缩为D2’(D2≤600),从而得到本次绘制
目标应用窗口时新的窗口大小和窗口位置等窗口参数。此时,如图12中的(b)所示,当用户
点击目标应用窗口中的输入框触发软键盘602弹出时,目标应用窗口向上平移且目标应用
窗口的大小缩小至绘制区域以内,从而可避免软键盘602对目标应用窗口的遮挡。
[0125] 进一步地,当终端确定出绘制目标应用窗口的大小和位置等窗口参数后,可调用framework层中的窗口管理服务(WindowManagerService)修改computeFrameLw()函数中
定义的窗口参数,使得后续终端能够按照该窗口参数将目标应用窗口绘制在上述绘制区域
内。
[0126] 需要说明的是,上述实施例中是以终端在垂直方向上将目标应用窗口平移为例计算目标应用窗口的位置的,可以理解的是,在保证软键盘与目标应用窗口之间不产生遮挡
的前提下,终端还可以在任意方向上平移目标应用窗口,以计算出绘制目标应用窗口时使
用的位置和大小等窗口参数,本申请实施例对此不做任何限制。例如,如图7中的(b)所示,
当软键盘沿屏幕的侧边设置时,终端可以通过在水平方向上平移目标应用窗口以计算出绘
制该目标应用窗口时的窗口参数。
[0127] 另外,上述实施例中是以屏幕中仅包括一个应用窗口为例说明的,可以理解的是,终端在显示时屏幕中可以包括多个应用窗口,每个应用窗口的绘制方法均可参见上述步骤
S501‑S504,从而保证软键盘提供输入法服务的应用窗口在显示时,不会受到软键盘的遮
挡。
[0128] 在本申请提供的另一种实施例中,终端在绘制屏幕中的每个应用窗口时,还可参照图13所示的一种应用窗口的显示方法。
[0129] 其中,与图5所示的一种应用窗口的显示方法不同的是,在步骤S1301‑S1304中,当终端检测出当前运行有输入法应用提供的软键盘时,终端无需确定当前待绘制的目标应用
窗口是否是上述软键盘作用的应用窗口,而是按照与上述步骤S503‑S505相同的步骤计算
屏幕中绘制区域的位置和大小,以及绘制目标应用窗口时目标应用窗口的窗口参数,并使
用该窗口参数在绘制区域中绘制目标应用窗口。
[0130] 也就是说,在运行有软键盘的应用场景下,终端在绘制任意应用窗口时均可将该应用窗口绘制在不与软键盘重叠的绘制区域。这样,不仅仅是软键盘提供输入法服务的应
用窗口在显示时不会被软键盘遮挡,终端屏幕中的其他应用窗口在显示时也不会被软键盘
遮挡。
[0131] 示例性的,如图14中的(a)所示,屏幕中显示有应用窗口1和应用窗口2,当用户点击应用窗口2的输入框时,可触发输入法应用打开软键盘提供输入法服务。
[0132] 其中,图14的(a)中虚线框内的区域(大小为1280x200)一般为终端显示上述软键盘602的位置。那么,当终端绘制应用窗口1时,如果检测到软键盘602已经打开,则终端可将
位于虚线框上方大小为1280x600的区域确定为允许绘制应用窗口的绘制区域。进而,如图
14中的(b)所示,终端可调整应用窗口1的位置或大小等窗口参数,将应用窗口1绘制在上述
绘制区域中。此时,虽然软键盘602并未向应用窗口1提供输入法服务,但应用窗口1中的显
示内容并不会受到软键盘602的遮挡,从而提高多应用窗口显示时的显示效果。
[0133] 进一步地,当屏幕中包含多个待绘制的应用窗口(例如应用窗口1和应用窗口2)时,终端在确定应用窗口1和应用窗口2的窗口参数时,还可以设置这两个应用窗口的位置
之间不重叠。
[0134] 示例性的,如图15中的(a)所示,屏幕中大小为1280x200的区域A一般为终端显示上述软键盘602的位置,那么,终端可预先在区域A上方大小为1280x600的绘制区域中划分
出多个不重叠的窗口模板,例如窗口模板1和窗口模板2。
[0135] 窗口模板1和窗口模板2的大小和位置可以预先存储在终端内,那么,终端在计算应用窗口1的窗口参数时,可以将窗口模板1的大小和位置作为应用窗口1的窗口参数,终端
在计算应用窗口2的窗口参数时,可以将窗口模板2的大小和位置作为应用窗口2的窗口参
数。这样,如图15中的(b)所示,由于窗口模板1和窗口模板2之间不重叠,因此终端后续绘制
出的应用窗口1和应用窗口2之间也不会重叠,从而避免显示多应用窗口时多个应用窗口之
间的遮挡现象。
[0136] S505、终端使用上述窗口参数将目标应用窗口绘制在上述绘制区域中。
[0137] 通过上述步骤S501‑S504,终端可以得到本次绘制目标应用窗口时具体使用的窗口参数,因此,在步骤S505中,终端可调用系统服务中的SurfaceFlinger服务,将步骤S504
中为目标应用窗口计算出的窗口参数传递给SurfaceFlinger服务,由SurfaceFlinger服务
负责按照该窗口参数在步骤S503确定的绘制区域中绘制该目标应用窗口的具体显示内容,
最终由终端的显示器显示绘制出的目标应用窗口。
[0138] 需要说明的是,上述实施例中是以终端绘制每一显示画面中每个应用窗口的绘制流程举例说明的,以下以终端在两幅显示画面之间切换时的显示场景为例,阐述本申请实
施例提供的一种应用窗口的显示方法,如图16所示,该方法包括:
[0139] S1601、终端显示第一GUI,该第一GUI中包括第一应用窗口。
[0140] S1602、终端接收用户作用于上述第一应用窗口的输入操作,该输入操作用于指示显示软键盘。
[0141] 其中,终端屏幕中为软键盘预先设置的固定显示位置与上述第一GUI中第一应用窗口的显示位置部分或全部重叠。
[0142] 在步骤S1601中,对于支持显示多应用窗口的终端,当终端内运行有一个或多个应用窗口时,终端均可显示上述第一GUI。以图11中的(a)为例,终端显示的第一GUI中包括微
信应用的目标应用窗口(即第一应用窗口)。
[0143] 在步骤S1602中,当用户需要向第一应用窗口中输入文本等信息时,可向上述第一应用窗口的输入框中执行输入操作,以触发终端在屏幕的固定位置显示输入法应用提供的
软键盘。仍如图11中的(a)所示,软键盘一般固定显示在图11中(a)所示的虚线区域内,如果
第一GUI中显示的第一应用窗口与该虚线区域发生重叠,则后续终端在上述虚线区域内显
示软键盘时会遮挡第一应用窗口中的显示元素。对此,在本申请实施例中,终端在响应上述
输入操作显示包括软键盘的第二GUI时,可通过执行下述步骤S1603避免软键盘对第一应用
窗口的遮挡。
[0144] S1603、响应于上述输入操作,终端显示第二GUI,该第二GUI中包括显示位置固定的软键盘,并且,在第二GUI中除软键盘之外的区域内包括完整显示的第一应用窗口。
[0145] 具体的,终端在执行步骤S1603时,可先在在第二GUI中的固定位置(例如上述图11中(a)所示的虚线区域内)绘制软键盘,进而,终端在第二GUI中绘制上述第一应用窗口时,
可沿用上述步骤S501‑S505或S1301‑S1304的方法(此处不再赘述),在与软键盘不重叠的绘
制区域内绘制第二GUI中的第一应用窗口。
[0146] 需要说明的是,由于在绘制第二GUI中的第一应用窗口时终端先绘制了软键盘,因此终端在执行步骤S501或S1301时均能够检测出软键盘已经被打开,那么终端在第二GUI中
绘制上述第一应用窗口时也可跳过步骤S501或S1301,即通过执行S502‑S505或S1302‑
S1304在绘制区域绘制第一应用窗口,使得绘制出的第二GUI中的第一应用窗口不会受到软
键盘的遮挡。
[0147] 需要说明的是,在另一实施方式中,在上述S1602中,如果终端屏幕中为软键盘预先设置的固定显示位置与上述第一GUI中第一应用窗口的显示位置没有重叠,即,当软键盘
被打开显示之后,该软键盘完全不会遮挡第一应用窗口。此时,终端响应上述输入操作,可
在第二GUI中的固定位置显示软键盘,并按照第一GUI中第一应用窗口的位置和大小在第二
GUI中绘制该第一应用窗口。
[0148] 可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描
述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式
来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的
特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所
描述的功能,但是这种实现不应认为超出本申请实施例的范围。
[0149] 本申请实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模
块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际
实现时可以有另外的划分方式。
[0150] 在采用对应各个功能划分各个功能模块的情况下,图17示出了上述实施例中所涉及的终端的一种可能的结构示意图,该终端用于实现以上各个方法实施例中记载的方法,
其具体包括:显示单元1601、确定单元1602、绘制单元1603以及输入单元1604。
[0151] 其中,显示单元1601,用于显示第一GUI,所述第一GUI中包括第一应用窗口;输入单元1604,用于接收作用于所述第一应用窗口的输入操作;显示单元1601,还用于显示第二
GUI,所述第二GUI中包括显示位置固定的软键盘,且所述第二GUI中除所述软键盘之外的区
域内包括完整显示的所述第一应用窗口;并且,所述第二GUI中所述软键盘的显示位置与所
述第一GUI中所述第一应用窗口的显示位置部分或全部重叠。
[0152] 进一步地,绘制单元1603,用于在所述第二GUI中的固定位置绘制所述软键盘;确定单元1602,用于:将所述第二GUI中除所述软键盘之外的区域确定为允许绘制应用窗口的
绘制区域;所述绘制单元1603,还用于在所述绘制区域内绘制所述第一应用窗口。
[0153] 进一步地,所述绘制单元1603,具体用于:查询所述第一应用窗口在所述第一GUI中的窗口状态;根据所述窗口状态确定所述第一应用窗口在所述第二GUI中的窗口参数,所
述窗口参数包括所述第一应用窗口的大小和位置;使用所述窗口参数将所述第一应用窗口
绘制在所述绘制区域内。
[0154] 进一步地,所述第一应用窗口在所述第一GUI中的窗口状态为最大化状态,所述确定单元1602,还用于将所述绘制区域中最大矩形的位置和大小确定为所述第一应用窗口在
所述第二GUI中的窗口参数。
[0155] 进一步地,所述第一应用窗口在所述第一GUI中的窗口状态为还原状态,所述确定单元1602,还用于:判断所述第一GUI中的第一应用窗口是否能够设置在所述绘制区域中;
若能够设置在所述绘制区域中,则将所述第一应用窗口在所述第一GUI中的第一尺寸作为
第一应用窗口在所述第二GUI中的大小;并且,所述终端将所述绘制区域中具有所述第一尺
寸的位置作为所述第一应用窗口在所述第二GUI中的位置;若无法设置在所述绘制区域中,
则将所述第一应用窗口从所述第一尺寸缩小为第二尺寸,并且,所述终端将所述绘制区域
中具有所述第二尺寸的位置作为所述第一应用窗口在所述第二GUI中的位置。
[0156] 进一步地,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2小于或等于所述绘制区域的高度D1;所述确定单元1602,具体用于:将
所述第一GUI中第一应用窗口沿第一方向平移第一距离后的位置,确定为所述第一应用窗
口在所述第二GUI中的位置;其中,所述第一方向为远离所述软键盘的方向,所述第一距离
为所述第一GUI中的第一应用窗口与所述软键盘在所述第一方向上重叠的距离。
[0157] 进一步地,所述软键盘固定显示在所述第二GUI的底部,所述第一应用窗口在所述第一GUI中的高度D2大于所述绘制区域的高度D1;所述确定单元1602,具体用于:将所述绘
制区域的高度D1作为所述第一应用窗口在所述第二GUI中的高度,并将所述第一应用窗口
在所述第一GUI中的宽度作为所述第一应用窗口在所述第二GUI中的宽度,得到所述第一应
用窗口在所述第二GUI中的大小;将所述第一GUI中第一应用窗口沿第一方向平移第二距离
后的位置,确定为所述第一应用窗口在所述第二GUI中的位置;其中,所述第一方向为远离
所述软键盘的方向,所述第二距离为所述第一GUI中所述第一应用窗口与所述第一GUI顶部
的距离。
[0158] 其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0159] 在采用集成的单元的情况下,可将上述确定单元1602、绘制单元1603集成为处理模块,将上述显示单元1601作为输出模块,将显示单元1601作为输入模块。当然,终端还可
以包括存储模块和通信模块。此时,如图18所示,示出了上述实施例中所涉及的终端的一种
可能的结构示意图,包括处理模块1701、通信模块1702、输入/输出模块1703以及存储模块
1704。
[0160] 其中,处理模块1701用于对终端的动作进行控制管理。通信模块1702用于支持终端与其他网络实体的通信。输入/输出模块1703用于接收由用户输入的信息或输出提供给
用户的信息以及终端的各种菜单。存储模块1704用于保存终端的程序代码和数据。
[0161] 示例性的,处理模块1701可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),GPU,通用处理器,数字信号处理器(Digital Signal 
Processor,DSP),专用集成电路(Application‑Specific Integrated Circuit,ASIC),现
场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体
管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的
各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含
一个或多个微处理器组合,DSP和微处理器的组合等等。
[0162] 通信模块1702可以是收发器、收发电路、输入输出设备或通信接口等。例如,通信模块1702具体可以是蓝牙装置、Wi‑Fi装置、外设接口等等。
[0163] 存储模块1704可以是存储器,该存储器可以包括高速随机存取存储器(RAM),还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他易失性固态存储器件等。
[0164] 输入/输出模块1703可以为触摸屏、键盘、麦克风以及显示器等输入输出设备。其中,显示器具体可以采用液晶显示器、有机发光二极管等形式来配置显示器。另外,显示器
上还可以集成触控板,用于采集在其上或附近的触摸事件,并将采集到的触摸信息发送给
其他器件(例如处理器等)。
[0165] 在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。所述计算机
程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全
部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专
用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储
介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计
算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、
数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务
器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是
磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘
Solid State Disk(SSD))等。
[0166] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申
请的保护范围应以所述权利要求的保护范围为准。