CN105677351A - 多窗口兼容显示方法及装置 - Google Patents
多窗口兼容显示方法及装置 Download PDFInfo
- Publication number
- CN105677351A CN105677351A CN201610008273.XA CN201610008273A CN105677351A CN 105677351 A CN105677351 A CN 105677351A CN 201610008273 A CN201610008273 A CN 201610008273A CN 105677351 A CN105677351 A CN 105677351A
- Authority
- CN
- China
- Prior art keywords
- window
- module
- application
- layoutparams
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/04886—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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- 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
一种多窗口兼容显示方法及装置,其中方法包括如下步骤,根据用户指令打开Activity窗体;从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表,判断所述窗体View的LayoutParams宽高属性,若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若属性判断为自适应大小,则不进行修改;进行UI布局绘制窗口并向窗口管理者加入窗口addWindow;通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。区别于现有技术,上述技术方案通过在应用启动时就进行预设大小的选择,节约了***资源,达到了解决多窗体同时兼容显示的效果。
Description
技术领域
本发明涉及***分屏显示方法领域,尤其涉及一种多窗口显示的方法及装置。
背景技术
随着移动设备的普及,大尺寸的平板电脑和手机越来越多,用户希望在同一个界面可以操作更多的应用程序,比如同时打开office的excel和word进行编辑工作,提高工作效率;多个应用窗口共存已成为一种必要的功能。
例如,在三星的GalaxyNote系列,可以实现了二分屏应用程序同时显示的功能;苹果的ipadpro也实现的不同应用二分屏显示;android6.0也实现了两个窗口共存。但是目前应用启动方式都是通过先启动一个应用,然后再屏幕右侧再划出浮动窗口,在浮动窗口选择新启动的应用,新启动的应用显示在先前已启动的右侧(横屏)或下方(竖屏),三星的notepro和苹果的ipadpro都采取该方式。
而android6.0采用的是再任务栏里选择窗口显示的位置,它提供多个显示位置。
但是这几种显示多个应用窗口共存的方法无法兼容所有的应用,只能适应少数几个的应用,一般都是通过配置文件定好某些应用可以加入窗口显示模式,适配简单操作繁琐;并且也无法让用户自由选择要启动应用的窗口大小,这样无法兼容android应用市场上所有的应用,比如有的是专门为小屏幕开发(如手机),显示小界面更为美观而且不会被拉伸,如果显示大屏幕就会被拉伸或空白显示;有的专门为大屏幕开发(如平板电脑),显示小屏幕时有些内容无法显示完整。在多个应用窗口共存的今天,能兼容这些应用显示的不同大小方式还没有。
而且这些二分屏的装置都不能移动该窗口显示位置,无法更好的操作该显示窗口,比如想把所有的显示二分屏窗口都移动到一边,再在主界面上打开新的窗口。
发明内容
为此,需要提供一种优化多窗口兼容显示的方法,解决现有智能设备多窗口显示兼容性不好的问题。
为实现上述目的,发明人提供了一种多窗口兼容显示方法,包括如下步骤,
根据用户指令打开Activity窗体;
从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表,判断所述窗体View的LayoutParams宽高属性,若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若属性判断为自适应大小,则不进行修改;
进行UI布局,绘制窗口并向窗口管理者加入窗口addWindow;
通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。其中,,onCreate用来表示一个界面正在生成、setContentView表示生成界面、DecorView表示生成主界面、surface是视图图层,这些都是Android中的特别的函数。
进一步地,还包括步骤,接收界面切换指令,判断View的LayoutParams属性,若当前属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若当前属性判断为预设大小,则将LayoutParams修改为自动全屏,修改显示位置为原点位置;
***重新绘图updateApplayout;
windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。其中updateApplayout是表示更新绘图的函数。
具体地,所述预设大小为显示器分辨率实际大小的一半。
进一步地,还包括步骤,判断当前已运行的应用个数,若为偶数,则将新启动的应用窗体显示在左侧,若为奇数,则将新启动的应用窗体显示在屏幕右侧。
进一步地,还包括步骤,检测判断当前运行的应用的显示位置,将新启动的应用窗体显示在当前运行的应用的另一侧。
优选地,还包括步骤,接收屏幕移动指令,根据屏幕移动指令修改LayoutParams的显示位置;
***重新绘图updateApplayout;
windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
具体地,所述方法应用于Android***。
一种多窗口兼容显示装置,包括窗体打开模块、视图创建模块、属性修改模块、绘制窗口模块、创建显示模块,
所述窗体打开模块用于根据用户指令打开Activity窗体;
所述视图创建模块用于从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表;
所述属性修改模块用于判断所述窗体View的LayoutParams宽高属性,若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若属性判断为自适应大小,则不进行修改;
所述绘制窗口模块用于进行UI布局,绘制窗口并向窗口管理者加入窗口addWindow;
所述创建显示模块用于通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。
进一步地,还包括切换界面模块,所述切换界面模块用于接收界面切换指令,所述属性修改模块还用于判断View的LayoutParams属性,若当前属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若当前属性判断为预设大小,则将LayoutParams修改为自动全屏,所述属性修改模块还用于修改显示位置为原点位置;
所述绘制窗口模块还用于让***重新绘图updateApplayout;
所述创建显示模块还用于windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
具体地,所述预设大小为显示分辨率实际大小的一半。
进一步地,还包括应用个数判断模块,所述应用个数判断模块用于判断当前已运行的应用个数,所述属性修改模块还用于在当前运行的应用个数为偶数时,将新启动的应用窗体显示在左侧;还用于在当前运行的应用个数为奇数时,将新启动的应用窗体显示在屏幕右侧。
进一步地,还包括应用位置判断模块,所述应用位置判断模块用于检测判断当前运行的应用的显示位置,所述属性修改模块还用于用于将新启动的应用窗体显示在当前运行的应用的另一侧。
优选地,还包括移动指令接收模块,所述移动指令接收模块用于接收屏幕移动指令,所述属性修改模块还用于根据屏幕移动指令修改LayoutParams的显示位置;
所述绘制窗口模块还用于***重新绘图updateApplayout;
所述创建显示模块还用于windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
具体地,所述装置应用于Android***。
区别于现有技术,上述技术方案通过在应用启动时就进行预设大小的选择,节约了***资源,达到了解决多窗体同时兼容显示的效果。
附图说明
图1为本发明具体实施方式所述的多窗口兼容显示方法流程图;
图2为本发明具体实施方式所述的多窗口兼容显示装置模块图。
附图标记说明:
200、窗体打开模块;
202、视图创建模块;
204、属性修改模块;
206、绘制窗口模块;
208、创建显示模块;
210、切换界面模块;
212、应用个数判断模块;
214、应用位置判断模块;
216、移动指令接收模块。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
本发明提供了一种全新的启动应用窗口大小显示方法,可以应用于搭载Android***的大屏智能设备,如安卓平板、安卓笔记本等,通过该方法,可以启动后自由选择好窗口的显示大小,其中包含三种不同的窗口大小显示模式:全屏模式、二分屏模式、手机模式;选择模式后应用自动重新启动并按选后的显示模式显示窗口。这样用户可以针对每个不同的应用选择不同的显示模式,找到兼容最好的显示方式,***将记录每个应用选择好的显示方式以便下次启动使用;提供了全屏显示和二分屏显示之间快速切换按钮。
同时提供了二分屏窗口位置智能判断和新的移动方式,显示二分屏后可以根据输入手势把二分屏窗口显示移动到左半屏或者右半屏。这样就可以想把所有的显示二分屏窗口都移动到一边,再在主界面上打开新的窗口。
可以更好的让应用共存的,让用户得到更好的应用体验和提高操作多个应用的便捷。
请参阅图1,为一种多窗口兼容显示方法流程图,包括如下步骤,
S100根据用户指令打开Activity窗体;
S102从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表,S104判断所述窗体View的LayoutParams宽高属性,步骤S106若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;步骤S108若属性判断为自适应大小,则不进行修改;
S110进行UI布局,绘制窗口并向窗口管理者加入窗口addWindow;
S112通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。
其中所述宽高属性用于表示Activity窗体的大小;LayoutParams属性是对窗体属性的对象,Android显示应用窗口大小通过WindowManager.LayoutParams的对象画出不同大小窗口,LayoutParams有x和y变量表示该view显示的位置,LayoutParams的width和height便是该view显示的大小。其中包括两个不同的宽高属性LayoutParams.MATCH_PARENT和LayoutParams.WRAP_CONTENT,分别表示自动全屏显示和自适应界面大小,自动全屏显示会根据该设备的分辨率大小全屏显示该应用界面,自适应大小会根据该view定义的宽高大小显示,如果没有定义宽高会根据该view的背景图等因素自适应大小。在某些具体的实施例中,预设大小可以为全屏、或显示屏大小的若干等分,例如显示器实际分辨率大小的一半。预设大小可以通过用户指令进行选择,也可以***自身进行默认大小设置。通过上述方法,在进行应用启动时便进行判断、属性更改,然后才进行***的窗口绘制,节省了***资源,提高了窗体运行的效率,更可以通过修改LayoutParams属性来改变窗体显示的大小,达到了多窗体同时运行的效果。
在某些进一步的实施例中,还包括步骤,接收界面切换指令,判断View的LayoutParams属性,若当前属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若当前属性判断为预设大小,则将LayoutParams修改为自动全屏,修改显示位置为原点位置;
***重新绘图updateApplayout;
windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。通过上述方法进行全屏模式和预设大小显示模式之间的切换,是通过重新执行绘图进程来完成的,这样原先的应用不再占用***资源,能够更快速地达到显示方式转换的效果。
在另一些进一步的实施例中,应用以显示器分辨率的一半大小进行显示,还包括步骤,判断当前已运行的应用个数,若为偶数,则将新启动的应用窗体显示在左侧,若为奇数,则将新启动的应用窗体显示在屏幕右侧。
其他实施例中,为了解决有的应用会被用户隐藏的问题,让新启动的应用不遮挡当前应用,还包括步骤,检测判断当前运行的应用的显示位置,将新启动的应用窗体显示在当前运行的应用的另一侧。上述方法使得新启动的应用不遮挡当前显示的应用,提高了用户的使用体验。
在优选的实施例中,还包括步骤,接收屏幕移动指令,根据屏幕移动指令修改LayoutParams的显示位置;所述屏幕移动指令可以是用户轻触屏幕,向一侧滑动的手势指令,根据初始触点所在位置判断需要修改属性的窗口对象。再进行步骤,***重新绘图updateApplayout;windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。通过上述方法达到了对显示窗口进行移动的效果,更好的解决了多窗口兼容显示的问题。
在图2所示的实施例中,为一种多窗口兼容显示装置模块图,包括窗体打开模块200、视图创建模块202、属性修改模块204、绘制窗口模块206、创建显示模块208,
所述窗体打开模块200用于根据用户指令打开Activity窗体;
所述视图创建模块202用于从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表;
所述属性修改模块204用于判断所述窗体View的LayoutParams宽高属性,若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若属性判断为自适应大小,则不进行修改;
所述绘制窗口模块206用于进行UI布局,绘制窗口并向窗口管理者加入窗口addWindow;
所述创建显示模块208用于通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。通过上述模块设计,在进行应用启动时便进行判断、属性更改,然后才进行***的窗口绘制,节省了***资源,提高了窗体运行的效率,更可以通过修改LayoutParams属性来改变窗体显示的大小,达到了多窗体同时运行的效果。
在进一步的实施例中,还包括切换界面模块210,所述切换界面模块210用于接收界面切换指令,所述属性修改模块还用于判断View的LayoutParams属性,若当前属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若当前属性判断为预设大小,则将LayoutParams修改为自动全屏,所述属性修改模块还用于修改显示位置为原点位置;
所述绘制窗口模块206还用于让***重新绘图updateApplayout;
所述创建显示模块208还用于windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
具体的实施例中,所述预设大小为显示分辨率实际大小的一半。
进一步的实施例中,还包括应用个数判断模块212,所述应用个数判断模块212用于判断当前已运行的应用个数,所述属性修改模块204还用于在当前运行的应用个数为偶数时,将新启动的应用窗体显示在左侧;还用于在当前运行的应用个数为奇数时,将新启动的应用窗体显示在屏幕右侧。
进一步的实施例中,还包括应用位置判断模块214,所述应用位置判断模块214用于检测判断当前运行的应用的显示位置,所述属性修改模块204还用于用于将新启动的应用窗体显示在当前运行的应用的另一侧。上述模块设置使得新启动的应用不遮挡当前显示的应用,提高了用户的使用体验。
在某些优选的实施例中,还包括移动指令接收模块216,所述移动指令接收模块用于接收屏幕移动指令,所述属性修改模块还用于根据屏幕移动指令修改LayoutParams的显示位置;
所述绘制窗口模块206还用于***重新绘图updateApplayout;
所述创建显示模块208还用于windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。通过上述装置模块设计达到了对显示窗口进行移动的效果,更好的解决了多窗口兼容显示的问题。
在其他一些实施例中,为了让***更好区分该应用当前的显示模式,为该对象加入align参数,定义该参数的三种模式选择,分别为FULL_SCREEN、HALF_SCREEN、PHONE_SCEEN.
当选择全屏显示时,不用改变WindowManager.LayoutParams中的width和height值,让***运行原来流程显示该应用程序窗口。
当选择二分屏显示时,修改WindowManager.LayoutParams中的width值,修改为该设备屏幕分辨率的大小一半,让应用以为该设备分辨率只有一半大小,***显示窗口时,只会显示一半;如果width为WRAP_CONTENT时view自适应大小,不改变其大小;如图2。
二分屏模式显示:当用户启动二分屏显示的应用,***根据当前已经显示的二分屏窗口,自动校验新启动的二分屏应用位置,尽量避免直接覆盖在原有的二分屏上。其中位置校验的规则是先判断当前显示二分屏窗口的个数,如果为奇数,新加入的窗口显示在右边;如果是偶数,新加入的窗口显示在左边。进一步说明,当是奇数时,已经有窗口已经显示在右边(因为二分屏窗口可移动和最小化),新加入的窗口显示在左边,二分屏窗口显示的位置可以通过可以通过判断WindowManager.LayoutParams的x值来确定。
二分屏窗口显示的应用是可以移动的,方便用户更好的操作。移动的方式是指根据在窗口的某个区域屏幕输入的手势动作,比如显示在左半屏的窗口,在标题栏的位置,向左滑动50个像素点,***得到该手势指令,更新该窗口的WindowManager.LayoutParams的x值,并且让view管理者重新画窗口,从而达到更新窗口位置的目的。同理,显示在右半屏的应用,向右滑动50个像素点,窗口移动到相对面。这样移动的方式更加简单方便,并且也相对***负担更少,也避免的移动窗口卡顿等问题。
另一些实施例中包括手机模式显示:当选择手机模式显示时,修改WindowManager.LayoutParams中的width值,修改为该设备屏幕分辨率的宽度的三分之一,height为分辨率高度,让应用以为该设备分辨率只有三分之一大小,***显示窗口时,只会显示三分之一。
由于手机模式显示想达到类似应用显示在手机上的效果,所以显示的宽度高度都需要特殊限制。将独立为该个应用赋予特殊的分辨率大小、dpi、方向,让竖屏的手机应用可以像显示在手机上一样显示在横屏大屏幕设备上。
因为android为了兼容应用会根据分辨率大小、dpi、方向等config来加载该应用的资源文件,来显示应用。所以应用启动时拷贝了一份特殊分辨率大小,dpi、方向config给该应用,让该应用通知显示模块管理者根据该config加载应用的最匹配该config资源文件,达到在大屏幕的设备上显示竖屏手机应用的目的。
由于应用中不止只有主窗口,还会有子窗口。
定义:
所述应用窗口类型为应用程序直接创建的窗口,在Android***中每个应用窗口都有对应的Activity;
所述子窗口类型为与应用窗口类型关联并认定后者为父窗的窗口类型,子窗口类型一般为PopupWindow,SurfaceView,Dialog;
所述***窗口类型为***级权限才可创建的窗口,一般有
TYPE_STATUS_BAR
TYPE_SEARCH_BAR
TYPE_SYSTEM_ALERT
TYPE_KEYGUARD
TYPE_TOAST等几类。
所以当选择是二分屏模式和手机模式时,显示对应的子窗口大小也要相应的显示在父窗口的位置和修改其大小。加入子窗口时,先根据WindowManager.LayoutParams中的taskid值寻找相同的任务id,如果没有taskid,可以跟踪相同的包名来判断。然后把父窗口的x,y和width赋予该Params。
4)、***记录该应用的选择,以便以后启动显示窗口大小。
为***的信用信息添加模式选择参数,选择应用后修改该应用的信息为选择后的模式。并把应用信息保存到xml文件中,在***重新启动后会加载该xml,让应用信息中的模式选择参数可以保存并读取。
2、本发明提供了一种全屏模式和二分屏模式快速切换方法。当应用程序全屏显示点击切换按钮,立即切换到二分屏显示;当显示二分屏大小,点击切换按钮,立即切换到全屏显示。方便用户在不同模式下操作该应用,但该应用选择显示的模式不变,下次重新启动还是照选择的窗口模式显示。
当选择切换按钮时,修改window的WindowManager.LayoutParams对象width和显示模式align值。然后通知管理view画图的管理者ViewRootImpl,根据当前params重新画图。通知的view包含主窗口和子窗口。
比如全屏切换到二分屏时,修改params的width为分辨率一半大小,align为HALF_SCREEN。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
Claims (14)
1.一种多窗口兼容显示方法,其特征在于,包括如下步骤,
根据用户指令打开Activity窗体;
从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表,判断所述窗体View的LayoutParams宽高属性,若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若属性判断为自适应大小,则不进行修改;
进行UI布局,绘制窗口并向窗口管理者加入窗口addWindow;
通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。
2.根据权利要求1所述的多窗口兼容显示方法,其特征在于,还包括步骤,接收界面切换指令,判断View的LayoutParams属性,若当前属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若当前属性判断为预设大小,则将LayoutParams修改为自动全屏,修改显示位置为原点位置;
***重新绘图updateApplayout;
windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
3.根据权利要求1所述的多窗口兼容显示方法,其特征在于,所述预设大小为显示分辨率实际大小的一半。
4.根据权利要求3所述的多窗口兼容显示方法,其特征在于,还包括步骤,判断当前已运行的应用个数,若为偶数,则将新启动的应用窗体显示在左侧,若为奇数,则将新启动的应用窗体显示在屏幕右侧。
5.根据权利要求3所述的多窗口兼容显示方法,其特征在于,还包括步骤,检测判断当前运行的应用的显示位置,将新启动的应用窗体显示在当前运行的应用的另一侧。
6.根据权利要求1所述的多窗口兼容显示方法,其特征在于,还包括步骤,接收屏幕移动指令,根据屏幕移动指令修改LayoutParams的显示位置;
***重新绘图updateApplayout;
windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
7.根据权利要求1所述的多窗口兼容显示方法,其特征在于,所述方法应用于Android***。
8.一种多窗口兼容显示装置,其特征在于,包括窗体打开模块、视图创建模块、属性修改模块、绘制窗口模块、创建显示模块,
所述窗体打开模块用于根据用户指令打开Activity窗体;
所述视图创建模块用于从onCreate里调用setContentView设置主视图,创建主视图DecorView,addView加入视图列表;
所述属性修改模块用于判断所述窗体View的LayoutParams宽高属性,若宽高属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若属性判断为自适应大小,则不进行修改;
所述绘制窗口模块用于进行UI布局,绘制窗口并向窗口管理者加入窗口addWindow;
所述创建显示模块用于通过windowManagerService窗口管理服务创建窗口,创建surface,交给GPU进行显示。
9.根据权利要求8所述的多窗口兼容显示装置,其特征在于,还包括切换界面模块,所述切换界面模块用于接收界面切换指令,所述属性修改模块还用于判断View的LayoutParams属性,若当前属性判断为自动适配全屏,则将LayoutParams修改屏幕分辨率为预设大小;若当前属性判断为预设大小,则将LayoutParams修改为自动全屏,所述属性修改模块还用于修改显示位置为原点位置;
所述绘制窗口模块还用于让***重新绘图updateApplayout;
所述创建显示模块还用于windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
10.根据权利要求8所述的多窗口兼容显示装置,其特征在于,所述预设大小为显示分辨率实际大小的一半。
11.根据权利要求10所述的多窗口兼容显示装置,其特征在于,还包括应用个数判断模块,所述应用个数判断模块用于判断当前已运行的应用个数,所述属性修改模块还用于在当前运行的应用个数为偶数时,将新启动的应用窗体显示在左侧;还用于在当前运行的应用个数为奇数时,将新启动的应用窗体显示在屏幕右侧。
12.根据权利要求10所述的多窗口兼容显示装置,其特征在于,还包括应用位置判断模块,所述应用位置判断模块用于检测判断当前运行的应用的显示位置,所述属性修改模块还用于用于将新启动的应用窗体显示在当前运行的应用的另一侧。
13.根据权利要求8所述的多窗口兼容显示装置,其特征在于,还包括移动指令接收模块,所述移动指令接收模块用于接收屏幕移动指令,所述属性修改模块还用于根据屏幕移动指令修改LayoutParams的显示位置;
所述绘制窗口模块还用于***重新绘图updateApplayout;
所述创建显示模块还用于windowManagerService窗口管理服务更新窗口的大小及位置,交给GPU进行显示。
14.根据权利要求8所述的多窗口兼容显示装置,其特征在于,所述装置应用于Android***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610008273.XA CN105677351B (zh) | 2016-01-06 | 2016-01-06 | 多窗口兼容显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610008273.XA CN105677351B (zh) | 2016-01-06 | 2016-01-06 | 多窗口兼容显示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677351A true CN105677351A (zh) | 2016-06-15 |
CN105677351B CN105677351B (zh) | 2019-01-08 |
Family
ID=56234674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610008273.XA Active CN105677351B (zh) | 2016-01-06 | 2016-01-06 | 多窗口兼容显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677351B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502647A (zh) * | 2016-09-27 | 2017-03-15 | 深圳市金立通信设备有限公司 | 一种分屏应用兼容处理的方法及终端 |
CN109510942A (zh) * | 2018-12-14 | 2019-03-22 | 珠海全志科技股份有限公司 | 一种分屏摄像装置预览方法及*** |
CN110333833A (zh) * | 2019-05-06 | 2019-10-15 | 北京盛威时代科技有限公司 | 一种自助设备的分屏*** |
CN110764844A (zh) * | 2019-10-25 | 2020-02-07 | 芜湖盟博科技有限公司 | 一种车载***上的多应用窗口自定义布局方法 |
CN112015309A (zh) * | 2019-05-31 | 2020-12-01 | 北京字节跳动网络技术有限公司 | 显示切换方法、装置及移动终端 |
CN114579209A (zh) * | 2022-05-06 | 2022-06-03 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中应用启动时屏幕显示方式的设置方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161859A1 (en) * | 2005-01-18 | 2006-07-20 | Microsoft Corporation | Multi-application tabbing system |
CN102917273A (zh) * | 2012-09-28 | 2013-02-06 | 深圳市茁壮网络股份有限公司 | 一种跨平台显示应用的方法及装置 |
CN103116503A (zh) * | 2011-11-17 | 2013-05-22 | 华为软件技术有限公司 | 一种多窗口的实现方法及装置 |
US20130300684A1 (en) * | 2012-05-11 | 2013-11-14 | Samsung Electronics Co. Ltd. | Apparatus and method for executing multi applications |
CN103581754A (zh) * | 2012-07-20 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种数据显示方法及智能设备 |
CN104423777A (zh) * | 2013-08-23 | 2015-03-18 | 联想(北京)有限公司 | 一种窗口显示的方法及装置 |
-
2016
- 2016-01-06 CN CN201610008273.XA patent/CN105677351B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161859A1 (en) * | 2005-01-18 | 2006-07-20 | Microsoft Corporation | Multi-application tabbing system |
CN103116503A (zh) * | 2011-11-17 | 2013-05-22 | 华为软件技术有限公司 | 一种多窗口的实现方法及装置 |
US20130300684A1 (en) * | 2012-05-11 | 2013-11-14 | Samsung Electronics Co. Ltd. | Apparatus and method for executing multi applications |
CN103581754A (zh) * | 2012-07-20 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种数据显示方法及智能设备 |
CN102917273A (zh) * | 2012-09-28 | 2013-02-06 | 深圳市茁壮网络股份有限公司 | 一种跨平台显示应用的方法及装置 |
CN104423777A (zh) * | 2013-08-23 | 2015-03-18 | 联想(北京)有限公司 | 一种窗口显示的方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502647A (zh) * | 2016-09-27 | 2017-03-15 | 深圳市金立通信设备有限公司 | 一种分屏应用兼容处理的方法及终端 |
CN109510942A (zh) * | 2018-12-14 | 2019-03-22 | 珠海全志科技股份有限公司 | 一种分屏摄像装置预览方法及*** |
CN110333833A (zh) * | 2019-05-06 | 2019-10-15 | 北京盛威时代科技有限公司 | 一种自助设备的分屏*** |
CN112015309A (zh) * | 2019-05-31 | 2020-12-01 | 北京字节跳动网络技术有限公司 | 显示切换方法、装置及移动终端 |
CN112015309B (zh) * | 2019-05-31 | 2022-05-13 | 北京字节跳动网络技术有限公司 | 显示切换方法、装置及移动终端 |
CN110764844A (zh) * | 2019-10-25 | 2020-02-07 | 芜湖盟博科技有限公司 | 一种车载***上的多应用窗口自定义布局方法 |
CN114579209A (zh) * | 2022-05-06 | 2022-06-03 | 北京麟卓信息科技有限公司 | 一种安卓兼容环境中应用启动时屏幕显示方式的设置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105677351B (zh) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11079908B2 (en) | Method and apparatus for adding icon to interface of android system, and mobile terminal | |
CN105677351A (zh) | 多窗口兼容显示方法及装置 | |
CN107728901B (zh) | 界面显示方法、装置及终端 | |
CN103399703B (zh) | 用户设备的***栏的控制方法和用户设备 | |
CN101770399B (zh) | 一种电子设备及切换其操作***桌面的方法、装置 | |
KR101126394B1 (ko) | 이동 단말기 및 이동 단말기를 이용한 정보 표시 방법 | |
EP2871560B1 (en) | Image processing method and apparatus | |
CN103713847A (zh) | 用户设备的***栏的控制方法和用户设备 | |
CN104750450A (zh) | 一种即时通信中的文件共享方法及终端 | |
CN108064369B (zh) | 柔性显示屏的交互方法及装置 | |
CN105335041A (zh) | 一种提供应用图标的方法及装置 | |
CN104571877A (zh) | 一种页面的显示处理方法及装置 | |
CN106445441A (zh) | 一种消息显示方法及*** | |
CN109842818A (zh) | 一种视频播放方法、装置、计算机设备及存储介质 | |
CN106658139B (zh) | 一种焦点控制方法及装置 | |
CN105786435A (zh) | 壁纸图片的显示方法和装置 | |
WO2023061280A1 (zh) | 应用程序显示方法、装置及电子设备 | |
CN111061419A (zh) | 一种应用栏显示方法及电子设备 | |
CN105487752A (zh) | 一种应用控制方法及应用该方法的终端 | |
CN103513969A (zh) | 应用程序入口建立方法、装置和终端 | |
CN103324436A (zh) | 一种任务处理方法及装置 | |
CN107688430A (zh) | 更换壁纸的方法、装置、终端及存储介质 | |
CN112099684A (zh) | 一种搜索展示方法、装置及电子设备 | |
CN112188001B (zh) | 快捷设置方法、快捷设置装置、电子设备和可读存储介质 | |
CN112099789A (zh) | 人机交互设计方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee after: Ruixin Microelectronics Co., Ltd Address before: 350003 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China Patentee before: Fuzhou Rockchips Electronics Co.,Ltd. |