具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合附图和实施例对本发明进行详细说明。
请参阅图1,本发明一种应用程序界面显示控制方法的第一实施方式的流程示意图。所述控制方法用以控制一应用程序界面显示于一显示设备上,该实施方式示出的应用程序界面显示控制方法的流程包括以下步骤:
步骤10,从预置的至少两个可选分辨率中确定需要运行的应用程序所对应的合适分辨率,该合适分辨率由用户自定义,由应用程序定义,或其他方式产生,不以此为限制。
其中,该至少两个可选分辨率预置在所述显示设备中,且多个具有不同功能的应用程序也预先安装在该显示设备中,例如,该预置的至少两个可选分辨率可以是3840×2160、1920×1080、960×540等。
步骤S11,根据该合适分辨率确定配置信息。
其中,该配置信息可以包括该显示设备的屏幕分辨率、屏幕大小、横竖屏等。
步骤S12,根据该配置信息创建尺寸与该合适分辨率对应的尺寸大小相同的显示窗口,以加载该应用程序对应的资源文件。
其中,创建的显示窗口的尺寸与该合适分辨率的尺寸相同,用于对应用程序的页面内容进行绘制、渲染。例如,当分辨率为3840×2160时,则创建的显示窗口大小也为3840×2160,当分辨率为1920×1080时,则创建的显示窗口大小也为1920×1080。
在系统应用中,例如Android应用,在资源(resource)文件夹下面保存多套对应不同分辨率的资源文件,该应用程序的安装文件(application package file,APK)就可以适用于多种不同分辨率的屏幕。因此,当应用程序运行的时候,该Android系统通过遍历所有资源文件,以根据配置信息过滤掉不适应的entry文件,例如,分辨率是1920×1080,那么超过此分辨率的资源就要被过滤掉。对过滤后的资源文件进行最佳适配,找到最符合的entry文件以加载相应资源文件夹下的资源文件。
步骤S13,根据该合适分辨率以及该资源文件在该显示窗口绘制该应用程序界面于所述显示设备上。
请参阅图2,本发明一种应用程序界面显示控制方法的第二实施方式的流程示意图。该实施方式示出的应用程序界面显示控制方法的流程包括以下步骤:
步骤S20,从预置的至少两个可选分辨率中确定需要运行的应用程序所对应的合适分辨率。
其中,预先定义应用程序对应的合适分辨率,具体原理如下文所述。
在本实施方式中,预先设定系统能够识别的应用程序的属性对应的合适分辨率,以根据该需要运行的应用程序的属性确定该应用程序的合适分辨率,其中,该应用程序的属性可以根据其实现的功能识别出来。例如,设定属性为视频播放器的应用程序的合适分辨率为3840×2160,设定属性为绘图工具的应用程序的合适分辨率为1920×1080,设定属性为计算器的应用程序的合适分辨率为960×540。该应用程序的属性还可以根据其名称识别出来。
在另一实施方式中,预先建立一记录合适分辨率为一预设分辨率的应用程序列表的白名单,判断该需要运行的应用程序是否在该白名单中:当判断该应用程序在该白名单中时,确定该应用程序的合适分辨率为该预设分辨率;当判断该应用程序不在该白名单中时,确定该应用程序的合适分辨率为其默认分辨率。其中,该预设分辨率选自该预置的至少两个可选分辨率中,该默认分辨率可以是显示设备的物理分辨率,也可以是默认的小于显示设备的物理分辨率的一分辨率,并不以此为限。例如,该白名单记录内容为:合适分辨率为1920×1080,应用程序列表中包括百度视频、暴风影音等。当判断该需要运行的应用程序在该白名单中时,则确定应用程序的合适分辨率为1920×1080。当判断该需要运行的应用程序不在该白名单中时,则确定该应用程序的合适分辨率为其默认分辨率,例如,该默认分辨率是3840×2160。
步骤S21,根据该合适分辨率确定相应的配置信息。
步骤S22,根据该配置信息创建尺寸与该合适分辨率对应的尺寸大小相同的显示窗口以加载该应用程序界面对应的资源文件。
其中,创建的显示窗口的尺寸与该合适分辨率的尺寸相同,用于对应用程序的页面内容进行绘制、渲染。例如,当分辨率为3840×2160时,则创建的显示窗口大小也为3840×2160,当分辨率为1920×1080时,则创建的显示窗口大小也为1920×1080。
步骤S23,根据该合适分辨率以及加载的资源文件在该显示窗口绘制该应用程序界面于所述显示设备上。
请参阅图3,为本发明实施方式中在创建的显示窗口绘制应用程序界面方法的流程示意图。在本实施方式中,该合适分辨率小于显示设备的物理分辨率。该实施方式示出的在创建的显示窗口绘制应用程序界面方法的流程包括以下步骤:
子步骤S230,将该显示窗口的尺寸发送至该应用程序,以对该应用程序的界面进行排版;以及
子步骤S231,根据该合适分辨率和该加载的资源文件将该显示窗口绘制在显示设备屏幕帧缓存的左上角区域,并在该显示窗口绘制排版后的Android类型的应用程序界面。
请参阅图4,为本发明另一实施方式中在创建的显示窗口绘制应用程序界面方法的流程示意图。在本实施方式中,该合适分辨率等于显示设备的物理分辨率。该实施方式示出的在创建的显示窗口绘制应用程序界面于显示设备上的方法的流程包括以下步骤:
子步骤S330,将该显示窗口的尺寸发送至该应用程序,以对该应用程序的界面进行排版;以及
子步骤S331,根据该合适分辨率和该加载的资源文件将该显示窗口绘制在帧缓存的全部区域,并在该显示窗口绘制排版后的Android类型的应用程序界面。
步骤S24,将绘制的该应用程序界面的尺寸调整至与显示设备的物理分辨率对应的尺寸相同。
具体地,当在帧缓存的左上角区域或者全部区域绘制该显示窗口后,根据该物理分辨率计算对应的变换矩阵,将所有绘制的图像拉伸至适合屏幕大小。
请参阅图5,为本发明一种应用程序界面显示控制装置的第一实施方式的结构示意图。该装置40包括分辨率确定单元41、配置信息确定单元42、显示窗口创建单元43以及界面绘制单元44,该装置40用以控制一应用程序界面显示于一显示设备上。
该分辨率确定单元41用于从预置的至少两个可选分辨率中确定需要运行的应用程序所对应的合适分辨率,该合适分辨率由用户自定义,由应用程序定义,或其他方式产生,不以此为限制。
该配置信息确定单元42用于根据该分辨率确定单元41确定的该合适分辨率确定配置信息。其中,该配置信息可以包括显示设备的屏幕分辨率、屏幕大小、横竖屏等。
该显示窗口创建单元43用于根据该配置信息确定单元42确定的该配置信息创建尺寸与该合适分辨率对应的尺寸大小相同的显示窗口,以加载该应用程序对应的资源文件。
该界面绘制单元44用于根据该合适分辨率以及该资源文件在该显示窗口绘制该应用程序界面于所述显示设备上。
请参阅图6,为本发明一种应用程序界面显示控制装置的第二实施方式的结构示意图。该装置50包括分辨率确定单元51、配置信息确定单元52、显示窗口创建单元53、界面绘制单元54以及界面调整单元55,该装置50用以控制一应用程序界面显示于所述显示设备上。
该分辨率确定单元51用于从预置的至少两个可选分辨率中确定需要运行的应用程序所对应的合适分辨率,该合适分辨率由用户自定义,由应用程序定义,或其他方式产生,不以此为限制。在本实施方式中,该分辨率确定单元51预先设定系统能够识别的应用程序的属性对应的合适分辨率,以根据该需要运行的应用程序的属性确定该应用程序界面的合适分辨率,其中,该应用程序的属性可以根据其实现的功能识别出来,该应用程序的属性还可以根据其名称识别出来。在另一实施方式中,所述装置50还包括白名单创建单元56,用于预先建立一记录合适分辨率为一预设分辨率的应用程序列表的白名单,该分辨率确定单元51判断该需要运行的应用程序是否在该白名单中:当判断该应用程序在该白名单中时,该分辨率确定单元51确定该应用程序的合适分辨率为该预设分辨率;当判断该应用程序不在该白名单中时,该分辨率确定单元51确定该应用程序的合适分辨率为其默认分辨率。其中,该预设分辨率选自该预置的至少两个可选分辨率中,该默认分辨率可以是显示设备的物理分辨率,也可以是默认的小于显示设备的物理分辨率的一分辨率,并不以此为限。
该配置信息确定单元52用于根据该分辨率确定单元41确定的该合适分辨率确定配置信息。其中,该配置信息可以包括设备的屏幕分辨率、屏幕大小、横竖屏等。
该显示窗口创建单元53用于根据该配置信息确定单元52确定的该配置信息创建尺寸与该合适分辨率对应的尺寸大小相同的显示窗口,以加载该应用程序对应的资源文件。
该界面绘制单元54用于根据该合适分辨率以及该资源文件在该显示窗口绘制该应用程序界面。在本实施方式中,该合适分辨率小于物理分辨率,该界面绘制单元54在该显示窗口绘制该应用程序界面具体为:将该显示窗口的尺寸发送至该应用程序以对该应用程序的界面进行排版,并根据该合适分辨率和该加载的资源文件将该显示窗口绘制在显示设备屏幕帧缓存的左上角区域,并在该显示窗口绘制排版后的应用程序界面。在另一实施方式中,该合适分辨率等于物理分辨率,该界面绘制单元54在该显示窗口绘制该应用程序界面具体为:将该显示窗口的尺寸发送至该应用程序以对该应用程序的界面进行排版,并根据该合适分辨率和该加载的资源文件将该显示窗口绘制在帧缓存的全部区域,并在该显示窗口绘制排版后的应用程序界面于所述显示设备上。
该界面调整单元55用于将该界面绘制单元54绘制的该应用程序界面的尺寸调整至与物理分辨率对应的尺寸相同。具体地,当在帧缓存的左上角区域或者全部区域绘制该显示窗口后,该界面调整单元55根据显示设备的物理分辨率计算对应的变换矩阵,将所有绘制的图像被拉伸以适合屏幕大小。
下面以在Android系统中启用一应用程序为例对本发明进行说明。
当确定所需运行的应用程序时,相应地创建该应用程序对应的activity,并由ActivityManagerService(以下简称AMS)根据创建的activity从预置的至少两个可选分辨率中确定该需要运行的应用程序所对应的合适分辨率。
在本实施方式中,预先设定系统能够识别的应用程序的属性对应的合适分辨率,AMS根据该应用程序的属性确定该应用程序的合适分辨率。在另一实施方式中,预先建立一记录应用程序列表及对应的合适分辨率的白名单,AMS判断该应用程序是否在该白名单中以确定该应用程序的合适分辨率。在再一实施方式中,预先建立一记录合适分辨率为一预设分辨率的应用程序列表的白名单,AMS判断该需要运行的应用程序是否在该白名单中:当判断该应用程序在该白名单中时,确定该应用程序的合适分辨率为该预设分辨率;当判断该应用程序不在该白名单中时,确定该应用程序的合适分辨率为其默认分辨率。其中,该预设分辨率选自该预置的至少两个可选分辨率中,该默认分辨率可以是显示设备的物理分辨率。
AMS根据该确定的合适分辨率获取对应的configuration,WindowManagerService(以下简称WMS)根据该configuration创建尺寸与该合适分辨率对应的尺寸大小相同的window(显示窗口),并通过ResourceManager加载与该configuration对应的resource文件。
WMS还将创建的window尺寸信息反馈至该应用程序,使得该应用接收到该window尺寸信息后,对所述包含的布局文件进行重新计算以刷新布局。
SurfaceFlinger在handleMessageRefresh时获取当前可显示的layer,并根据WMS创建的window对应的layer大小计算对应的transform(变换矩阵),以便layer渲染到FrameBuffer(帧缓存)。例如,SurfaceFlinger获取到当前可显示的layer时,当判断layer对应的分辨率(合适分辨率)小于物理分辨率时,SurfaceFlinger改变layer的transform以控制layer渲染在FrameBuffer的左上角区域;当判断layer对应的分辨率等于物理分辨率时,SurfaceFlinger改变layer的transform以控制layer渲染在FrameBuffer的全部区域。然后,通过调整GOP的StretchWindow的source和dest的大小,将绘制的该应用程序界面的尺寸调整至与物理分辨率对应的尺寸相同,显示到显示设备上。
进一步地,当所需运行的应用程序的数量为多个时,如上所述确定每个应用程序的合适分辨率以及分别创建尺寸与该合适分辨率对应的尺寸大小相同的显示窗口,该界面绘制单元54将该多个合适分辨率中的最大值作为该所需运行的每个应用程序最终的分辨率。例如,第一应用程序的合适分辨率为3840×2160、第二应用程序的合适分辨率为1920×1080、第三应用程序的合适分辨率为1920×1080。该界面绘制单元54将3840×2160作为第一、二、三应用程序的分辨率,根据3840×2160分辨率以及该资源文件分别在各个显示窗口绘制对应的应用程序界面。本发明提供一种应用程序界面控制方法及装置,根据选择的需要运行的应用程序的相关信息(例如,应用程序属性)选择合适的分辨率,并根据该分辨率确定的配置信息创建与该分辨率对应尺寸大小相同的显示窗口,以在该显示窗口上绘制该应用程序界面。应用程序不是都在相同分辨率下启动以显示具有同一分辨率的界面,而是在选择合适的分辨率后相应地调整显示窗口尺寸及布局,从而避免了在高分辨率设备中拉伸低分辨率应用程序界面而出现模糊的技术问题,同时也通过在高分辨率设备中选择较低的、合适的分辨率显示较低分辨率的应用程序界面而达到节省图形处理器资源的技术效果。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。