蒙层显示方法、装置、电子设备和存储介质与流程

文档序号:19736932发布日期:2020-01-18 04:36阅读:239来源:国知局
蒙层显示方法、装置、电子设备和存储介质与流程

本公开涉及软件技术领域,尤其涉及蒙层显示方法,蒙层显示装置,电子设备和存储介质。



背景技术:

由于手机等终端设备中的应用程序的背景一般为白色,亮度较高,为了避免对用户眼睛造成损伤,在相关技术中,在应用程序的窗口上添加蒙层(shadowwindow)。其中,蒙层是透明度相对较低的一层窗口,通过设置蒙层,可以降低用户观看到的应用程序中画面的亮度。

例如图1所示,应用程序的窗口上未设置蒙层,画面亮度较高,如图2所示,通过在应用程序的窗口上设置蒙层,用户观看到的应用程序中画面的亮度相对图1得到了降低。

由于蒙层一般是系统当前界面中最上层的窗口,可是当系统调用并显示模态控件时,所显示的模态控件会与蒙层产生冲突,导致模态控件中的按键失效。

例如图3所示,模态控件是有关图像的控件,其中“拍摄或录像”、“照片图库”、“浏览”等按键,由于模态控件与蒙层存在冲突会失效,需要用户先关掉蒙层才能使用模态控件中的按键,这对用户的操作造成了不便。



技术实现要素:

本公开提供一种蒙层显示方法,蒙层显示装置,电子设备和存储介质,以至少解决相关技术中模态控件与蒙层存在冲突会失效的技术问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提出一种蒙层显示方法,适用于应用程序,所述应用程序安装于终端,所述方法包括:

在所述应用程序的窗口上显示蒙层;

监听所述应用程序的窗口上是否显示所述终端的系统模态控件;

若显示所述系统模态控件,则暂时移除所述蒙层,直至所述系统模态控件停止显示,恢复显示所述蒙层。

可选地,所述蒙层部分覆盖所述终端的状态栏。

可选地,所述状态栏未被所述蒙层覆盖的区域的面积小于预设面积,其中,所述预设面积为人眼能够区分出未被所述蒙层覆盖的区域的亮度与所述蒙层亮度的最小面积。

可选地,所述在所述应用程序的窗口上显示蒙层包括:

根据接收到的蒙层显示指令,在所述应用程序的窗口上显示蒙层,且按照预设变化速度,持续预设时长,降低所述蒙层的透明度。

可选地,所述移除所述蒙层包括:

按照所述预设变化速度,持续预设时长,提高所述蒙层的透明度,直至所述蒙层的透明度提高至第一预设透明度,移除所述蒙层。

可选地,所述方法还包括:

在降低所述蒙层的透明度的过程中,若接收到蒙层关闭指令,确定所述蒙层当前的第一透明度,根据所述第一透明度、第一预设透明度和所述预设变化速度确定第一剩余时间,按照所述预设变化速度,且持续所述第一剩余时间,提高所述蒙层的透明度,直至所述蒙层的透明度提高至所述第一预设透明度,移除所述蒙层;

在提高所述蒙层的透明度的过程中,若接收到蒙层显示指令,确定所述蒙层当前的第二透明度,根据所述第二透明度、第二预设透明度和所述预设变化速度确定第二剩余时间,按照所述预设变化速度,且持续所述第二剩余时间,降低所述蒙层的透明度,其中,在持续所述第二剩余时间后,所述蒙层的透明度为所述第二预设透明度。

根据本公开实施例的第二方面,提出一种蒙层显示装置,适用于应用程序,所述应用程序安装于终端,所述装置包括:

蒙层显示模块,被配置为执行在所述应用程序的窗口上显示蒙层;

监听模块,被配置为执行监听所述应用程序的窗口上是否显示所述终端的系统模态控件;

显示控制模块,被配置为执行在显示所述系统模态控件的情况下,暂时移除所述蒙层,直至所述系统模态控件停止显示,恢复显示所述蒙层。

可选地,所述蒙层部分覆盖所述终端的状态栏。

可选地,所述状态栏未被所述蒙层覆盖的区域的面积小于预设面积,其中,所述预设面积为人眼能够区分出未被所述蒙层覆盖的区域的亮度与所述蒙层亮度的最小面积。

可选地,所述蒙层显示模块,被配置为执行根据接收到的蒙层显示指令,在所述应用程序的窗口上显示蒙层,且按照预设变化速度,持续预设时长,降低所述蒙层的透明度。

可选地,所述显示控制模块,被配置为执行按照所述预设变化速度,持续预设时长,提高所述蒙层的透明度,直至所述蒙层的透明度提高至第一预设透明度,移除所述蒙层。

可选地,所述蒙层显示模块,被配置为执行:

在降低所述蒙层的透明度的过程中,若接收到蒙层关闭指令,确定所述蒙层当前的第一透明度,根据所述第一透明度、第一预设透明度和所述预设变化速度确定第一剩余时间,按照所述预设变化速度,且持续所述第一剩余时间,提高所述蒙层的透明度,直至所述蒙层的透明度提高至所述第一预设透明度,移除所述蒙层;以及

在提高所述蒙层的透明度的过程中,若接收到蒙层显示指令,确定所述蒙层当前的第二透明度,根据所述第二透明度、第二预设透明度和所述预设变化速度确定第二剩余时间,按照所述预设变化速度,且持续所述第二剩余时间,降低所述蒙层的透明度,其中,在持续所述第二剩余时间后,所述蒙层的透明度为所述第二预设透明度。

根据本公开实施例的第三方面,提出一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的蒙层显示方法。

根据本公开实施例的第四方面,提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的蒙层显示方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的蒙层显示方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

根据本公开的实施例,在显示蒙层时,若终端显示模态控件,可以暂停显示蒙层,直至终端停止显示模态控件,据此,可以避免模态控件与蒙层冲突,进而避免模态控件中的按键失效,确保用户能够顺利地对模态控件中的按键进行操作。并且在终端停止显示模态控件,可以自动恢复显示蒙层,确保用户的眼睛不被强光照射。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1和图2是相关技术中未设置膜层和设置了蒙层的显示效果比较示意图。

图3是相关技术中蒙层和模态控件冲突的示意图。

图4是根据本公开的实施例示出的一种蒙层显示方法的示意流程图。

图5是根据本公开的实施例示出的另一种蒙层显示方法的示意流程图。

图6是根据本公开的实施例示出的又一种蒙层显示方法的示意流程图。

图7是根据本公开的实施例示出的又一种蒙层显示方法的示意流程图。

图8是根据本公开的实施例示出的一种蒙层显示装置所在设备的一种硬件结构图。

图9是根据本公开的实施例示出的一种蒙层显示装置的示意框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图4是根据本公开的实施例示出的一种蒙层显示方法的示意流程图。

本实施例所示的蒙层显示方法可以适用于应用程序,所示应用程序安装于终端,所述终端包括但不限于手机、平板电脑、可穿戴设备等电子设备。

如图4所示,所述蒙层显示方法可以包括以下步骤:

在步骤s1中,在所述应用程序的窗口上显示蒙层;

在一个实施例中,蒙层可以是透明度较低的一个窗口,例如该窗口中的部分像素为透明,部分像素为黑色。

蒙层的显示可以由应用程序触发,例如在应用程序中可以设置有预设按键,用户通过点击该按键可以触发蒙层显示指令,进而显示蒙层,当再次点击该按键可以触发蒙层关闭指令,进而关闭蒙层。

在步骤s2中,监听所述应用程序的窗口上是否显示所述终端的系统模态控件;

在一个实施例中,应用程序可以hook显示系统模态控件的事件,从而当终端显示系统模态控件,以及停止显示系统模态控件时,可以向应用程序发送通知,使得应用程序确定终端是否显示系统模态控件。

在步骤s3中,若显示所述系统模态控件,则暂时移除所述蒙层,直至所述系统模态控件停止显示,恢复显示所述蒙层。

根据本公开的实施例,在显示蒙层时,若终端显示系统模态控件,可以暂时移除蒙层,直至系统模态控件停止显示,可以恢复显示所述蒙层。据此,可以避免系统模态控件与蒙层冲突,进而避免系统模态控件中的按键失效,确保用户能够顺利地对系统模态控件中的按键进行操作。并且在终端停止显示系统模态控件后,可以自动恢复显示蒙层,确保用户的眼睛不被强光照射。

在一个实施例中,可以在应用程序中设置蒙层的等级(level)为:

uiwindowlevelalert+n;

其中,n为大于或等于1的整数,例如可以为1000,据此,可以保证蒙层的等级在最上层,从而够覆盖终端的系统弹窗、状态栏以及应用程序自身创建的其他所有窗口,确保蒙层能够对终端中所有窗口起到降低亮度的作用,确保用户眼睛不会受到强光照射。

在一个实施例中,可以在应用程序中设置蒙层的userinteractionenabled属性为no,据此,可以保证蒙层只承担视觉效果作用,而不会响应任何触摸事件,进而保证触摸事件可以透传给蒙层之下的窗口,例如应用程序的窗口,确保用户顺利操作。

可选地,所述蒙层部分覆盖所述终端的状态栏。

由于目前在终端中可以安装多种多样的应用程序,当应用的窗口全屏显示时,会覆盖终端的状态栏(statusbar),而在不同的应用程序中,对于状态栏的显示效果可能会进行调整,终端的系统会完全覆盖状态栏的最靠上层的窗口时,并会将状态栏的显示权交给该窗口,从而使得该窗口可以根据需要调整状态栏的显示效果。

但是在应用程序的窗口之上显示蒙层时,蒙层是位于最上层的窗口,相关技术中的蒙层完全覆盖终端的状态栏,那么终端的系统会将状态栏的显示权交给蒙层,可是蒙层本身并不是应用程序,没有对状态栏显示效果的调整能力,这会导致状态栏并没有根据蒙层之下的应用程序的需要进行调整。

根据本公开的实施例,可以设置蒙层部分覆盖所述终端的状态栏,也即蒙层并不完全覆盖终端的状态栏,那么终端检测到位于最上层的蒙层并未完全覆盖状态栏,可以检测完全覆盖状态栏的下一层窗口。而一般触发蒙层的应用程序的窗口就位于蒙层之下,且该应用程序的窗口完全覆盖状态栏,那么终端的系统可以将状态栏的显示权交给该应用程序,从而使得状态栏能够根据蒙层之下的应用程序的需要进行调整,以便状态栏具有适用于应用程序的显示效果。

可选地,所述状态栏未被所述蒙层覆盖的区域的面积小于预设面积,其中,所述预设面积为人眼能够区分出未被所述蒙层覆盖的区域的亮度与所述蒙层亮度的最小面积。

在一个实施例中,可以将状态栏未被蒙层覆盖的区域的面积设置的较小,例如小于预设面积,而预设面积为人眼能够区分出未被蒙层覆盖的区域的亮度与蒙层亮度的最小面积,那么将状态栏未被蒙层覆盖的区域的面积设置的小于预设面积,可以确保人眼不会识别出状态栏未被蒙层覆盖的区域和蒙层的亮度区别,也即视觉效果上蒙层仍然完全覆盖了状态栏,但是终端本身可以识别出状态栏未被蒙层完全覆盖。

据此,一方面可以保证终端的系统可以将状态栏的显示权交给触发蒙层的应用程序,从而使得状态栏能够根据蒙层之下的应用程序的需要进行调整,以便状态栏具有适用于应用程序的显示效果,另一方面可以保证视觉效果上蒙层仍然完全覆盖了状态栏,保证用户良好的观看效果。

在一个实施例中,对于蒙层结构frame可以设置为cgrectmake(0,0.1,[uiscreenmainscreen].bounds.size.width,[uiscreenmainscreen].bounds.size.height-0.1),也即蒙层距离终端屏幕顶部边框(一般状态栏显示在终端顶部)0.1个点(一个点可以对应一个像素,也可以对应多个像素)。

图5是根据本公开的实施例示出的另一种蒙层显示方法的示意流程图。

如图5所示,所述在所述应用程序的窗口上显示蒙层包括:

在步骤s11中,根据接收到的蒙层显示指令,在所述应用程序的窗口上显示蒙层,且按照预设变化速度,持续预设时长,降低所述蒙层的透明度。

在一个实施例中,用户可以通过点击应用程序中的预设按键来触发蒙层显示指令,初始显示的蒙层透明度较高,例如透明度为100%,然后可以按照预设变化速率降低所述蒙层的透明度,且持续预设时长,例如按照每0.1秒降低2.5%透明度的速度降低透明度,持续2秒,那么用户可以看到屏幕在2秒的时长内逐渐变暗,2秒后屏幕的透明度变为50%,而不会突然变暗。据此,有利于降低屏幕亮度改变的突兀感,以便提高用户的观看效果。

图6是根据本公开的实施例示出的又一种蒙层显示方法的示意流程图。如图6所示,所述移除所述蒙层包括:

在步骤s31中,按照所述预设变化速度,持续预设时长,提高所述蒙层的透明度,直至所述蒙层的透明度提高至第一预设透明度,移除所述蒙层。

在一个实施例中,移除蒙层的过程,可以是按照预设变化速度,持续预设时长,提高蒙层的透明度,然后直至蒙层的透明度提高至第一预设透明度,移除蒙层。据此,可以按照预设变化速度逐渐提高蒙层的透明度,而不会瞬间移除蒙层。

例如蒙层当前的透明度为50%,第一预设透明度为100%,预设变化速度为每0.1秒降低2.5%透明度,那么从透明度为50%变化为第一预设透明度为100%,所需的第一剩余时间为2秒。也即从透明度为50%开始,持续2秒,按照每0.1秒降低2.5%透明度,提高蒙层透明度,直至透明度提高至100%,移除蒙层,在此过程中,蒙层的透明度按照预设变化速度逐渐提高,在达到第一预设透明度时,才移除蒙层,而不会在当前的透明度,例如50%透明度,突然移除蒙层,有利于降低屏幕亮度改变的突兀感,以便提高用户的观看效果。

图7是根据本公开的实施例示出的又一种蒙层显示方法的示意流程图。

如图7所示,所述方法还包括:

在步骤s4中,在降低所述蒙层的透明度的过程中,若接收到蒙层关闭指令,确定所述蒙层当前的第一透明度,根据所述第一透明度、第一预设透明度和所述预设变化速度确定第一剩余时间,按照所述预设变化速度,且持续所述第一剩余时间,提高所述蒙层的透明度,直至所述蒙层的透明度提高至所述第一预设透明度,移除所述蒙层;

在步骤s5中,在提高所述蒙层的透明度的过程中,若接收到蒙层显示指令,确定所述蒙层当前的第二透明度,根据所述第二透明度、第二预设透明度和所述预设变化速度确定第二剩余时间,按照所述预设变化速度,且持续所述第二剩余时间,降低所述蒙层的透明度,其中,在持续所述第二剩余时间后,所述蒙层的透明度为所述第二预设透明度。

在一个实施例中,由于预设时长可能较长,用户可能多次点击预设按键,从而触发蒙层关闭指令和蒙层显示指令。

那么在降低蒙层的透明度的过程中,若接收到蒙层关闭指令,可以确定所述蒙层当前的第一透明度,根据第一透明度、第一预设透明度和预设变化速度确定第一剩余时间,按照预设变化速度,持续第一剩余时间,提高蒙层的透明度,直至蒙层的透明度提高至所述第一预设透明度,移除蒙层。

例如第一透明度为30%,第一预设透明度为80%,预设变化速度为每0.1秒降低2.5%透明度,那么从第一透明度为30%变化为第一预设透明度为80%,所需的第一剩余时间为2秒。也即从透明度为30%开始,持续2秒,按照每0.1秒降低2.5%透明度,提高蒙层透明度,直至透明度提高至80%,移除蒙层,在此过程中,蒙层的透明度按照预设变化速度逐渐提高,在达到第一预设透明度时,才移除蒙层,而不会在第一透明度,例如30%透明度,突然移除蒙层,有利于降低屏幕亮度改变的突兀感,以便提高用户的观看效果。

而在提高蒙层的透明度的过程中,若接收到蒙层显示指令,可以确定蒙层当前的第二透明度,根据第二透明度、第二预设透明度和预设变化速度确定第二剩余时间,按照预设变化速度,持续第二剩余时间,降低蒙层的透明度,其中,在持续所述第二剩余时间后,所述蒙层的透明度为所述第二预设透明度。

例如第二透明度为80%,第二预设透明度为30%,预设变化速度为每0.1秒降低2.5%透明度,那么从第二透明度为80%变化为第二预设透明度为30%,所需的第一剩余时间为2秒。也即从透明度为80%开始,持续2秒,按照每0.1秒降低2.5%透明度,降低蒙层透明度,直至透明度降低至30%,在此过程中,蒙层的透明度按照预设变化速度逐渐提高,在达到第二预设透明度时,停止调整蒙层的透明度,而不会直接从第二透明度突变为第二预设透明度,有利于降低屏幕亮度改变的突兀感,以便提高用户的观看效果。

例如预设变化速度v为每0.1秒降低2.5%透明度;

当前的第一透明度为currentopacity1=window.layer.presentationlayer.opacity;

那么第一剩余时间t1=currentopacity1/v;

相应地,第二透明度为currentopacity2,那么第二剩余时间t2=currentopacity2/v;

据此,可以保证用户在多次点击预设按键触发蒙层关闭指令和蒙层显示指令时,蒙层的透明度都可以按照预设变化速度变化,进而保证屏幕的亮度不会突变,有利于提高用户的观看效果。

本公开实施例示出的蒙层显示装置的实施例可以应用在终端等设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为根据本公开的实施例示出的蒙层显示装置所在设备的一种硬件结构图,除了图8所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。

与前述蒙层显示方法的实施例相对应地,本公开还提出了蒙层显示装置的实施例。

图9是根据本公开的实施例示出的一种蒙层显示装置的示意框图。

本实施例所示的蒙层显示装置可以适用于应用程序,所示应用程序安装于终端,所述终端包括但不限于手机、平板电脑、可穿戴设备等电子设备。

如图9所示,所述蒙层显示装置可以包括:

蒙层显示模块1,被配置为执行在所述应用程序的窗口上显示蒙层;

监听模块2,被配置为执行监听所述应用程序的窗口上是否显示所述终端的系统模态控件;

显示控制模块3,被配置为执行在显示所述系统模态控件的情况下,暂时移除所述蒙层,直至所述系统模态控件停止显示,恢复显示所述蒙层。

可选地,所述蒙层部分覆盖所述终端的状态栏。

可选地,所述状态栏未被所述蒙层覆盖的区域的面积小于预设面积,其中,所述预设面积为人眼能够区分出未被所述蒙层覆盖的区域的亮度与所述蒙层亮度的最小面积。

可选地,所述蒙层显示模块,被配置为执行根据接收到的蒙层显示指令,在所述应用程序的窗口上显示蒙层,且按照预设变化速度,持续预设时长,降低所述蒙层的透明度。

可选地,所述显示控制模块,被配置为执行按照所述预设变化速度,持续预设时长,提高所述蒙层的透明度,直至所述蒙层的透明度提高至第一预设透明度,移除所述蒙层。

可选地,所述蒙层显示模块,被配置为执行:

在降低所述蒙层的透明度的过程中,若接收到蒙层关闭指令,确定所述蒙层当前的第一透明度,根据所述第一透明度、第一预设透明度和所述预设变化速度确定第一剩余时间,按照所述预设变化速度,且持续所述第一剩余时间,提高所述蒙层的透明度,直至所述蒙层的透明度提高至所述第一预设透明度,移除所述蒙层;以及

在提高所述蒙层的透明度的过程中,若接收到蒙层显示指令,确定所述蒙层当前的第二透明度,根据所述第二透明度、第二预设透明度和所述预设变化速度确定第二剩余时间,按照所述预设变化速度,且持续所述第二剩余时间,降低所述蒙层的透明度,其中,在持续所述第二剩余时间后,所述蒙层的透明度为所述第二预设透明度。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开的实施例还提出一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现上述任一实施例所述的蒙层显示方法。

本公开的实施例还提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的蒙层显示方法。

本公开的实施例还提出一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的蒙层显示方法。

可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本公开的实施例还提出一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的蒙层显示方法。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1