CN109460272A - 针对安卓系统的应用显示方法和装置 - Google Patents
针对安卓系统的应用显示方法和装置 Download PDFInfo
- Publication number
- CN109460272A CN109460272A CN201811058702.XA CN201811058702A CN109460272A CN 109460272 A CN109460272 A CN 109460272A CN 201811058702 A CN201811058702 A CN 201811058702A CN 109460272 A CN109460272 A CN 109460272A
- Authority
- CN
- China
- Prior art keywords
- color
- background colour
- navigation
- body region
- navigation bar
- 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
Classifications
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提出了一种针对安卓系统的应用显示方法和装置。该方法包括:基于应用主体区背景色将所述导航栏背景色显示为与所述应用主体区背景色相近或相同;以及将所述导航栏中的导航键显示为与所述导航栏背景色相区别的颜色,其中,在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色。由此,通过将导航栏背景色显示为与应用主体区背景色相同或相似来消除对屏幕的截断感,提升用户的使用体验。尤其针对导航键颜色被厂商设置为不可更改的情况,可以通过合理设置导航栏背景色来兼顾屏幕整体显示的完整性和导航键的可分辨性。
Description
技术领域
本发明涉及移动终端应用,尤其涉及针对安卓系统的应用显示方法和装置。
背景技术
随着智能移动终端,尤其是智能电话和平板电脑的普及,基于Linux的开源操作系统Android(安卓)得到了越来越多的使用。人们使用在安卓系统下安装的各类应用,进行信息获取、休闲娱乐和社交沟通等多种活动。根据安卓系统的设计,应用显示界面通常包括多个不同的显示区域。图1示出了一个典型的应用显示界面的例子。如图1所示,显示界面包括位于顶部的状态栏1、中部的应用主体区2以及底部的导航栏3。状态栏通常用于显示诸如时间、电池电量、移动电话网络运营商和信号强度等信息。应用主体区用于显示当前应用下该应用所要显示的内容,例如图中浏览器应用中所显示的正浏览页面的视图。导航栏则用于显示虚拟按键,例如回退键、home键和分栏显示键等等。
虽然安卓系统具备开源性的特点,但智能电话厂商通常会为了满足其自身的风格设计要求而对应用显示做出一定的限制(例如,某些显示对象的显示属性不可修改)。对于顶部状态栏和底部导航栏而言,虽然可以例如在系统设置中调整具体的显示项目,但状态栏和导航栏的显示风格通常是固定的。上述显示风格通常会与应用主体区的显示风格相冲突,从而破坏应用设计人员苦心营造的使用美感。
因此,需要一种更能符合用户需要和审美的应用显示方案。
发明内容
基于如上的至少一个问题,提出了一种针对安卓系统的应用显示方案,其通过主动将导航栏背景色显示为与应用主体区背景色相同或相似来消除对屏幕的截断感,改善底部的沉浸式效果,提升了用户的使用体验。
根据本发明的一个方面,提出了一种针对安卓系统的应用显示方法,包括:基于应用主体区背景色将导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色;以及将所述导航栏中的导航键的颜色显示为与所述导航栏背景色相区别的颜色,其中,在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色。由此,通过将导航栏背景色显示为与应用主体区背景色相同或相似来消除对屏幕的截断感,提升了用户的使用体验。尤其针对导航键颜色被厂商设置为不可更改的情况,可以通过合理设置导航栏背景色来兼顾屏幕整体显示的完整性和导航键的可分辨性。
基于应用主体区背景色将导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色可以包括如下至少之一:去除所述导航栏原有的背景色;将所述应用主体区设置为全屏模式;或者为所述导航栏添加颜色与所述应用主体区背景色相近或相同的背景。这样,能够根据具体情况灵活选择导航栏的显示方式。其中,可以通过获取导航栏背景色的设置命令,并直接根据颜色转换命令来去除所述导航栏背景色。具体地,可以获取最外层布局对象的DecorView,以获取所述导航栏背景色的设置命令,随后通过window.setNavigationBarColor(Color.TRANSPARENT)命令去除导航栏背景色。另外,还获取到当前Activity的Window对象,以确定如下至少一种信息:所述应用主体区的背景色;和/或所述Window对象是否为全屏。
将所述导航键的颜色显示为与所述导航键背景色相区别的颜色可以包括:通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。可以通过系统命令获取所述导航键的颜色设置命令;并且在判断所述导航键的颜色与所述应用主体区背景色相同时,通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。具体地,通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UI flag,并且基于所述UI flag判断所述导航键的颜色,并通过decorView.setSystemUiVisibility()将所述decorView中与所述导航键颜色对应的标志位所述UI flag设为与所述应用主体区背景色相区别的颜色。由此实现对导航键图标颜色的直接设置。
在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色可以包括向导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层。所述蒙层可以是如下至少一种颜色:与所述应用主体区交界侧的颜色与所述应用主体区背景色相同的渐变色;或者与所述应用主体区背景色相近且能够与所述导航键颜色相区别的单一色。由此在实现显示屏幕一体化的同时保证对导航栏中导航键的轻易识别。
具体地,在安卓系统中可以通过创建一个新的View对象充当所述蒙层;并且通过addView将所述视图对象动态注入到针对所述导航栏的当前Activity最外层布局对象的DecorView中。
由此,应用可以具有如下之一的显示方案:应用主体区背景色和所述导航栏背景色显示为白色,并且所述导航键显示为黑色或灰色;或者应用主体区背景色和所述导航键显示为白色,并且所述导航栏背景色显示为灰色或者从白色到黑色或灰色的渐变色。
根据本发明的另一个方面,提出了一种针对安卓系统的应用显示装置,包括:导航栏显示单元,基于应用主体区背景色将所述导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色;以及导航键显示单元,用于将所述导航栏中的导航键的颜色显示为与所述导航栏背景色相区别的颜色,其中,在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,所述导航栏显示单元将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色。
优选地,导航栏显示单元可以用于:获取最外层布局对象的DecorView,以获取所述导航栏背景色的设置命令;以及通过window.setNavigationBarColor(Color.TRANSPARENT)命令去除所述导航栏背景色。
优选地,导航键显示单元可以用于:通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UIflag;以及基于所述UI flag判断所述导航键的颜色,并通过decorView.setSystemUiVisibility()将所述decorView中与所述导航键颜色对应的标志位所述UI flag设为与所述应用主体区背景色相区别的颜色。
在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,所述导航栏显示单元将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色包括向所述导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层,并且所述蒙层是如下至少一种颜色:与所述应用主体区交界侧的颜色与所述应用主体区背景色相同的渐变色;或者与所述应用主体区背景色相近且能够与所述导航键颜色相区别的单一色。
所述导航栏显示单元可以进行如下操作以添加所述蒙层:创建一个新的View对象充当所述蒙层;以及通过addView将所述视图对象动态注入到针对所述导航栏的当前Activity最外层布局对象的DecorView中。
根据本发明的又一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上任一项所述的方法。
根据本发明的再一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上任一项所述的方法。
通过本发明的针对安卓系统的应用显示方案,能够为用户提供更为统一的显示,以避免由于安卓系统本身的设置而导致的显示屏幕被截断等不良显示效果。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了一个典型的应用显示界面的例子。
图2示出了根据本发明一个实施例的应用显示方法的示意性流程图。
图3示出了根据本发明一个实施例的应用显示装置的示意图。
图4示出了根据本发明一个实施例可用于实现上述应用显示方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
为了满足用户对占屏比的需要,越来越多的智能电话厂商从其设备正面移除了诸如“home”键的物理按键,转而推出了使用虚拟按键来代替物理按键的各类“全屏手机”。虽然设备底部原本属于物理按键的部分被更大的屏幕所占据,但仍然需要布置在屏幕底部的虚拟按键来保持这类大屏幕的智能移动终端的操作流畅性。在此,屏幕底部安置这些虚拟按钮的显示区域可被称为“导航栏”,位于导航栏中的虚拟按键可被称为“导航键”。
在各类应用及与系统桌面之间的切换过程中,上述导航栏通常保持在屏幕底部的显示,以确保用户随时可以进行例如回到桌面显示操作(对应于“home”键)和回退操作(对应于回退键)等常规操作。各大厂商基于各设备型号和设计的考虑,通常会将导航栏的显示风格固定(例如,一直保持黑色背景和白色按键的导航栏显示风格),甚至会禁止其他应用对在其内显示的导航栏配色的修改。但当上述导航栏显示风格与应用显示风格不相协调时,会导致用户的使用体验下降。
举例来说,在用户购入的白色“全屏手机”的默认导航栏被手机厂商固定显示为黑底白键时,白色背景的应用(例如,具有美感的极简白色设计风格)配上黑色背景的导航栏会使得屏幕的显示区域像是被截短了一块。换句话说,与应用主体区背景色相异的导航栏会使得用户的大屏幕或是全屏体验大打折扣,从而违背了用户购买“全屏手机”或是大屏幕智能电话的初衷。
有鉴于此,本发明提出了一种针对安卓系统的应用显示方案,该方案通过主动将导航栏背景色显示为与应用主体区背景色相同或相似来消除对屏幕的截断感,改善底部的沉浸式效果,提升了用户的使用体验。
图2示出了根据本发明一个实施例的应用显示方法的示意性流程图。该应用显示方法针对安卓系统中特定应用的显示,例如图1所示浏览器应用的显示。
在步骤S210,基于应用主体区背景色将导航栏背景色显示为与应用主体区背景色相近或相同的颜色。换句话说,显示出的导航栏背景色是由应用主体区的背景色所决定的。为了提升底部沉浸感,可以优选将导航栏背景色设置为与应用主体区的背景色相同;也可以在不影响沉浸体验的前提下使得导航栏显示出与应用主体区背景色相似的背景色。在此,“显示为”指的是“看上去是”。换句话说,只要采取一定手段使得导航栏背景区域部分的颜色看上去与应用主体区背景色相同或相近即可,并非一定需要将导航栏背景色本身设置为与应用主体区背景色相同或相近。
为了基于应用主体区背景色将导航栏背景色显示为与应用主体区背景色相近或相同,当导航栏原有背景色与应用主体区背景色相距较远时,需要首先去除导航栏原有的背景色。这是因为在安卓系统中,当前应用的显示是由当前Activity(活动)的窗口对象和最外层布局对象共同组成的。窗口对象对应于应用本身的显示,最外层布局对象则相当于整个用户界面布局最外层的框架,该框架包括顶部的状态栏和底部的导航栏。换句话说,在当前应用的显示中,导航栏是显示在应用窗口之上的。因此需要首先去除导航栏原有的背景色。
在一个实施例中,可以首先获取导航栏背景色的设置命令,再通过颜色转换命令去除所述导航栏背景色。在安卓系统中,上述去除可以通过首先获取最外层布局对象的DecorView,在针对获获取的DecorView,基于通过window.setNavigationBarColor(Color.TRANSPARENT)命令来实现。在去除导航栏背景色之后,可以直接为所述导航栏添加颜色与所述应用主体区背景色相近或相同的背景,也可以首先判断应用主体区的设置状况。在一个实施例中,可以获取当前Activity的Window对象,并从获取到的所述Window对象确定如下至少一种信息:所述应用主体区的背景色;和/或所述Window对象是否为全屏。如果对应于应用本身的当前Activity的Window对象就是全屏状态,则在去除导航栏背景色之后无需再额外设置导航栏背景色。如果Window对象处于非全屏状态,则可以将导航栏背景色设置为与应用主体区背景色相近或相同,也可以直接将应用主体区设置为全屏模式。这在安卓8.0(Android 8.0)以下的系统的部分机型不支持导航栏设置背景色(即,某些手机厂商调整了官方API代码使得背景色设置不生效)的情况下尤为有效。
在步骤S220,将导航栏中的导航键显示为与导航栏背景色相区别的颜色。在此,颜色的区别指代用户能够从导航栏背景色中分辨出导航键的颜色;进一步地,可以指代正常视力的用户能够毫不费力地从导航栏背景色中分辨出导航键的颜色。类似地,在此的“显示为”指的是采取一定手段使得用户能够从导航栏背景区域中分辨出导航键即可,并非一定需要将导航键本身的颜色设置为与应导航栏背景区域的显色相区别。在一个实施例中,仅通过合理选择导航栏背景色就能够在不修改导航键显示颜色的基础上实现导航栏背景色与应用主体区背景色相同或相近且与导航键颜色相区别的显示效果。
通过将导航栏背景色显示为与应用主体区背景色相同或相似来消除对屏幕的截断感,提升了用户的使用体验。
作为上述方法的一个步骤或是作为步骤S210的子步骤,在导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,将导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色。对于导航键颜色被厂商设置为不可更改的情况,可以通过合理设置导航栏背景色来兼顾屏幕整体显示的完整性和导航键的可分辨性。
在一个实施例中,系统支持针对导航键颜色的直接设置。因此,将导航键显示为与应用主体区背景色相区别的颜色可以包括通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。而通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色可以包括:通过系统命令获取所述导航键的颜色设置命令;在判断所述导航键的颜色与所述应用主体区背景色相同时,通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。具体在安卓系统中,通过系统命令获取所述导航键的设置命令可以实现为通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UI flag。而判断所述导航键的颜色与所述应用主体区背景色相同时,通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色则可实现为基于所述UI flag判断所述导航键的颜色,并通过decorView.setSystemUiVisibility()将所述decorView中与所述导航键颜色对应的标志位所述UI flag设为与所述应用主体区背景色相区别的颜色。
由于安卓8.0(Android 8.0)及以上的系统提供了直接设置导航键颜色的API接口,因此对于导航键颜色的合理显示可以通过上述直接设置导航键颜色实现。但安卓8.0(Android 8.0)以下的系统由于不支持底部导航键图标的颜色设置(即,默认导航键图标颜色不可更改),因此需要对导航栏的背景色做出相应的调整,以使得导航键能够显示为与导航栏背景色相区别,且导航栏背景色与主体区背景色相似。
因此,在一个实施例中,将所述导航栏中的导航键显示为与所述导航栏背景色相区别的颜色除了可以通过将所述导航键的颜色直接设置为与所述应用主体区背景色相区别的颜色来实现之外,还可以通过向导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层来实现。于是,在导航键颜色无法被设置且与应用主体区背景色相同或相近的颜色的情况下,可以向导航栏添加所述蒙层,并且蒙层是如下至少一种颜色:与所述应用主体区交界侧的颜色与所述应用主体区背景色相同的渐变色;或者与所述应用主体区背景色相近且能够与所述导航键颜色相区别的单一色。在一个实施例中,上述蒙层的添加可以如下实现:创建一个新的视图对象充当所述蒙层;以及通过addView将所述视图对象动态注入到针对所述导航栏的当前Activity最外层布局对象的DecorView中。
由此,在导航键图标颜色可被设置的情况下,可以直接将应用主体区和导航栏的背景色都设置为相同颜色,导航键设置为区别色,以实现显示区域整体的一致性,提升底部导航键的沉浸方案。例如,在应用A采用白色背景主题但导航栏原始为黑色背景白色按键的情况下,可以通过首先去除导航栏黑色背景色,随后再将应用A全屏或是将导航栏设置为白色背景色来使得应用和导航栏的背景都为白色,随后直接将导航键图标设置为黑色或灰色,从而实现显示区域的一体化。在其他实施例中,也可以采用使得导航栏背景与应用背景颜色相似,但仍能分辨出其交界的配色,例如纯白色的应用主题和白灰色的导航栏。进一步地,还可以在交界出添加例如灰色的分割线,以便在保持导航栏和应用区整体配色统一的同时提供一定的区别性。
而在导航键颜色不可被设置的情况下,倘若导航键图标颜色与应用背景色相同,则需要合理设置导航栏背景色以实现与应用区的一体化以及与按键图标的区别。例如,在应用A采用白色背景主题,导航栏原始为黑色背景白色按键且按键白色不可更改的情况下,可以通过首先去除导航栏黑色背景色,随后直接将导航栏背景色显示为灰色或者从白色到黑色或灰色的渐变色。例如,当导航栏背景色也无法更改时,可以通过设置蒙层来实现将导航栏背景色显示为灰色或者从白色到黑色或灰色的渐变色的效果。由此,在确保导航栏背景色与应用主体颜色相近(不突兀,且具有视觉整体性)的同时还能够轻易从导航栏中分辨出白色的按键图标。
以上结合图2详述了根据本发明一个实施例的应用显示方案。通过对导航栏颜色的合理设置,能够使得导航栏的显示与应用显示相适应,从而提升显示屏幕整体的显示效果,提升用户的使用体验。
图3示出了根据本发明一个实施例的应用显示装置的示意图。如图3所示,一种针对安卓系统的应用显示装置300可以包括导航栏显示单元310和导航键显示单元320。导航栏显示单元310可以基于应用主体区背景色将所述导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色。导航键显示单元320则用于将导航栏中的导航键的颜色显示为与导航栏背景色相区别的颜色。在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,所述导航栏显示单元将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色
具体地,导航栏显示单元310可以去除所述导航栏原有的背景色;将所述应用主体区设置为全屏模式;和/或为所述导航栏添加颜色与所述应用主体区背景色相近或相同的背景。为了去除导航栏背景色,导航栏显示单元可以获取最外层布局对象的DecorView,以获取所述导航栏背景色的设置命令,随后通过window.setNavigationBarColor(Color.TRANSPARENT)命令来实现导航栏背景色的去除。进一步地,导航栏显示单元310可以获取到当前Activity的Window对象,并据此判断所述应用主体区的背景色;和/或所述Window对象是否为全屏。此外,导航栏显示单元310也可以直接将导航栏背景色设置为与应用背景色相同的颜色。
对于导航键的显示,在一个实施例中,导航键显示单元320可以通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。例如,导航键显示单元320可以通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UIflag,随后可以基于所述UI flag判断所述导航键的颜色,并通过decorView.setSystemUiVisibility()将所述decorView中与所述导航键颜色对应的标志位所述UI flag设为与所述应用主体区背景色相区别的颜色。
而在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,导航栏显示单元310将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色可以包括向所述导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层。蒙层可以是如下至少一种颜色:与所述应用主体区交界侧的颜色与所述应用主体区背景色相同的渐变色;或者与所述应用主体区背景色相近且能够与所述导航键颜色相区别的单一色。在一个实施例中,导航栏显示单元310首先通过创建一个新的View对象充当蒙层,随后通过addView将所述视图对象动态注入到针对所述导航栏的当前Activity最外层布局对象的DecorView中。
图4示出了根据本发明一个实施例的可用于实现上述应用显示方法的计算设备的结构示意图。
参见图4,计算设备400包括存储器410和处理器420。
处理器420可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器420可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器420可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器410可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器420或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器410可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器410可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器410上存储有可处理代码,当可处理代码被处理器420处理时,可以使处理器420执行上文述及的针对安卓系统的应用显示方法。
[应用例]
本发明旨在提供一种底部导航栏的沉浸显示方案。对于安装了Android 8.0及以上操作系统的移动终端,能够实现本发明显示方案的应用可以直接通过官方API接口来实现对导航键图标颜色的设置,避免兼容性的问题。针对安装了Android 8.0及以上操作系统的移动终端,,能够实现本发明显示方案的应用则可通过View的动态注入方案来实现导航栏的沉浸显示,由此能够与针对Android 8.0及以上操作系统的方案沿用同样的对外接口,提高使用的便捷性。
针对安装了Android 8.0及以上操作系统的移动终端,能够实现本发明显示方案的应用可以进行如下操作:
1.获取当前Activity的Window对象以确定当前应用处于全屏状态,并且获取最外层布局对象DecorView;
2.针对获取的最外层布局对象DecorView,通过指令window.setNavigationBarColor(Color.TRANSPARENT)去掉底部导航栏的背景色;
3.通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UI flag;以及
4.判断底部导航键是否需要重新设置图标颜色,然后通过decorView.setSystemUiVisibility()设置对应的标志位到decorView。
针对安装了Android 8.0及以下操作系统的移动终端,能够实现本发明显示方案的应用可以进行如下操作:
1.获取到当前Activity的Window对象以确定当前应用不处于全屏状态,并且获取最外层布局对象DecorView;
2.由于8.0以下不支持底部导航键图标的颜色设置,而且部分机型的底部导航栏由于厂商调整了官方API代码而使得背景色设置不生效,因此需要通过新创建一个View(视图)对象(充当蒙层的黑色透明背景),然后通过addView动态注入到DecorView对象中;
3.通过window.setNavigationBarColor(Color.TRANSPARENT)来去掉底部虚拟按键的背景色
4.通过DecorView.setFitsSystemWindows(true)将Activity设置为全屏模式,底部虚拟按键就好悬浮在Activity的页面上,步骤2新添加的View充当了底部导航栏的背景。
由此,即便针对不同的安卓系统,本发明的显示方案仍然能够采用常规原生系统API来实现上述沉浸式显示,不存在手机厂商定制系统导致的兼容性问题。
上文中已经参考附图详细描述了根据本发明的应用显示方案。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种针对安卓系统的应用显示方法,包括:
基于应用主体区背景色将导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色;以及
将所述导航栏中的导航键的颜色显示为与所述导航栏背景色相区别的颜色,其中,
在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色。
2.如权利要求1所述的方法,其中,基于应用主体区背景色将导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色包括如下至少之一:
去除所述导航栏原有的背景色;
将所述应用主体区设置为全屏模式;或者
为所述导航栏添加颜色与所述应用主体区背景色相近或相同的背景。
3.如权利要求1所述的方法,其中,基于应用主体区背景色将导航栏背景色显示为与所述应用主体区背景色相同或相近的颜色包括:
获取所述导航栏背景色的设置命令;
通过颜色转换命令去除所述导航栏背景色。
4.如权利要求3所述的方法,其中,获取所述导航栏背景色的设置命令包括:
获取最外层布局对象的DecorView,以获取所述导航栏背景色的设置命令;
通过颜色转换命令去除所述导航栏背景色包括:
通过window.setNavigationBarColor(Color.TRANSPARENT)命令去除所述导航栏背景色。
5.如权利要求3所述的方法,其中,将所述导航键的颜色显示为与所述导航键背景色相区别的颜色包括:
通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。
6.如权利要求5所述的方法,其中,通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色包括:
通过系统命令获取所述导航键的颜色设置命令;
在判断所述导航键的颜色与所述应用主体区背景色相同时,通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色。
7.如权利要求6所述的方法,其中,通过系统命令获取所述导航键的设置命令包括:
通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UIflag,并且
判断所述导航键的颜色与所述应用主体区背景色相同时,通过系统命令直接将所述导航键的颜色设置为与所述应用主体区背景色相区别的颜色包括:
基于所述UI flag判断所述导航键的颜色,并通过decorView.setSystemUiVisibility()将所述decorView中与所述导航键颜色对应的标志位所述UI flag设为与所述应用主体区背景色相区别的颜色。
8.如权利要求1所述的方法,其中,将所述导航栏中的导航键的颜色显示为与所述导航栏背景色相区别的颜色包括如下之一:
将所述导航键的颜色直接设置为与所述应用主体区背景色相区别的颜色;以及
向所述导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层。
9.如权利要求8所述的方法,其中,在所述导航键的颜色能被设置的情况下,所述导航键的颜色与所述应用主体区背景色相同。
10.如权利要求8所述的方法,其中,在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色包括:
向所述导航栏添加所述蒙层,并且所述蒙层是如下至少一种颜色:
与所述应用主体区交界侧的颜色与所述应用主体区背景色相同的渐变色;或者
与所述应用主体区背景色相近且能够与所述导航键颜色相区别的单一色。
11.如权利要求8所述的方法,其中,向所述导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层包括:
创建一个新的View对象充当所述蒙层;以及
通过addView将所述视图对象动态注入到针对所述导航栏的当前Activity最外层布局对象的DecorView中。
12.如权利要求1所述的方法,其中,基于应用主体区背景色将所述导航栏背景色显示为与所述导航栏背景色相近或相同的颜色包括:
获取到当前Activity的Window对象;以及
从获取到的所述Window对象确定如下至少一种信息:
所述应用主体区的背景色;和/或
所述Window对象是否为全屏。
13.如权利要求1所述的方法,其中,所述应用具有如下之一的显示方案:
应用主体区背景色和所述导航栏背景色显示为白色,并且所述导航键显示为黑色或灰色;或者
应用主体区背景色和所述导航键显示为白色,并且所述导航栏背景色显示为灰色或者从白色到黑色或灰色的渐变色。
14.一种针对安卓系统的应用显示装置,包括:
导航栏显示单元,基于应用主体区背景色将导航栏背景色显示为与所述应用主体区背景色相近或相同的颜色;以及
导航键显示单元,用于将所述导航栏中的导航键的颜色显示为与所述导航栏背景色相区别的颜色,其中,
在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,所述导航栏显示单元将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色。
15.如权利要求14所述的装置,其中,所述导航栏显示单元用于:
获取最外层布局对象的DecorView,以获取所述导航栏背景色的设置命令;以及
通过window.setNavigationBarColor(Color.TRANSPARENT)命令去除所述导航栏背景色。
16.如权利要求14所述的装置,其中,所述导航键显示单元用于:
通过decorView.getSystemUiVisibility()获取最外层布局对象DecorView的UIflag;以及
基于所述UI flag判断所述导航键的颜色,并通过decorView.setSystemUiVisibility()将所述decorView中与所述导航键颜色对应的标志位所述UI flag设为与所述应用主体区背景色相区别的颜色。
17.如权利要求14所述的装置,其中,在所述导航键的颜色无法被设置且与应用主体区背景色相同或相近的情况下,所述导航栏显示单元将所述导航栏背景色显示为与所述应用主体区背景色相近且能够与所述导航键颜色相区别的颜色包括:
向所述导航栏添加能够显示出所述导航键且与所述应用主体区背景色相近似的颜色的蒙层,并且所述蒙层是如下至少一种颜色:
与所述应用主体区交界侧的颜色与所述应用主体区背景色相同的渐变色;或者
与所述应用主体区背景色相近且能够与所述导航键颜色相区别的单一色。
18.如权利要求17所述的装置,其中,所述导航栏显示单元进行如下操作以添加所述蒙层:
创建一个新的View对象充当所述蒙层;以及
通过addView将所述视图对象动态注入到针对所述导航栏的当前Activity最外层布局对象的DecorView中。
19.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-13中任何一项所述的方法。
20.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811058702.XA CN109460272A (zh) | 2018-09-11 | 2018-09-11 | 针对安卓系统的应用显示方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811058702.XA CN109460272A (zh) | 2018-09-11 | 2018-09-11 | 针对安卓系统的应用显示方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109460272A true CN109460272A (zh) | 2019-03-12 |
Family
ID=65606582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811058702.XA Pending CN109460272A (zh) | 2018-09-11 | 2018-09-11 | 针对安卓系统的应用显示方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460272A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488191A (zh) * | 2020-04-13 | 2020-08-04 | Oppo广东移动通信有限公司 | 屏幕显示方法、电子装置和存储介质 |
WO2024017145A1 (zh) * | 2022-07-20 | 2024-01-25 | 华为技术有限公司 | 显示方法和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155454A (zh) * | 2015-03-30 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种界面显示方法、装置及电子设备 |
CN107132962A (zh) * | 2017-05-02 | 2017-09-05 | 青岛海信移动通信技术股份有限公司 | 导航栏控制方法及装置 |
CN107479793A (zh) * | 2017-09-07 | 2017-12-15 | 青岛海信移动通信技术股份有限公司 | 导航栏显示方法、装置和计算机可读存储介质 |
CN107643910A (zh) * | 2017-07-31 | 2018-01-30 | 海南智媒云图科技股份有限公司 | 一种导航栏颜色更换的方法及装置 |
CN107908383A (zh) * | 2017-11-14 | 2018-04-13 | 维沃移动通信有限公司 | 一种屏幕颜色调整方法、装置及移动终端 |
CN108037956A (zh) * | 2017-12-27 | 2018-05-15 | 南昌黑鲨科技有限公司 | 一种显示界面显示方法、显示装置及计算机可读存储介质 |
-
2018
- 2018-09-11 CN CN201811058702.XA patent/CN109460272A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155454A (zh) * | 2015-03-30 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 一种界面显示方法、装置及电子设备 |
CN107132962A (zh) * | 2017-05-02 | 2017-09-05 | 青岛海信移动通信技术股份有限公司 | 导航栏控制方法及装置 |
CN107643910A (zh) * | 2017-07-31 | 2018-01-30 | 海南智媒云图科技股份有限公司 | 一种导航栏颜色更换的方法及装置 |
CN107479793A (zh) * | 2017-09-07 | 2017-12-15 | 青岛海信移动通信技术股份有限公司 | 导航栏显示方法、装置和计算机可读存储介质 |
CN107908383A (zh) * | 2017-11-14 | 2018-04-13 | 维沃移动通信有限公司 | 一种屏幕颜色调整方法、装置及移动终端 |
CN108037956A (zh) * | 2017-12-27 | 2018-05-15 | 南昌黑鲨科技有限公司 | 一种显示界面显示方法、显示装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
匿名: "全屏沉浸式透明状态栏效果", 《CSDN博客》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488191A (zh) * | 2020-04-13 | 2020-08-04 | Oppo广东移动通信有限公司 | 屏幕显示方法、电子装置和存储介质 |
WO2024017145A1 (zh) * | 2022-07-20 | 2024-01-25 | 华为技术有限公司 | 显示方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jackson | Commercial cultures: transcending the cultural and the economic | |
CN104216691B (zh) | 一种创建应用的方法及装置 | |
KR102523843B1 (ko) | 폰트 렌더링 방법, 장치 및 컴퓨터 판독 가능 저장매체 | |
KR102208183B1 (ko) | 컬러 트윈 애니메이션을 실현하는 방법 및 장치 | |
EP2478430B1 (en) | System and methods for a run time configurable user interface controller | |
CN107204036B (zh) | 生成头发图像的方法和装置 | |
CN103065338A (zh) | 为背景图像中的前景图像提供阴影的方法和装置 | |
CN109460272A (zh) | 针对安卓系统的应用显示方法和装置 | |
CN108404414B (zh) | 图片的融合方法、装置、存储介质、处理器及终端 | |
CN103092612A (zh) | 实现安卓操作系统3d桌面贴图的方法及电子装置 | |
CN111936966B (zh) | 用于创建图形内容的设计系统 | |
CN106681593A (zh) | 一种用户界面ui控件的显示控制方法及装置 | |
CN106484432A (zh) | 一种进度条定制方法、装置及进度条 | |
CN109785408B (zh) | 一种填图方法、装置及电子设备 | |
CN108063978A (zh) | 一种电视性能参数自适应的方法、电视及存储介质 | |
CN108133455A (zh) | 海报图像中用户名称的显示方法及装置 | |
US20230229375A1 (en) | Electronic Device, Inter-Device Screen Coordination Method, and Medium | |
CN114153442A (zh) | 基于可视化组件的大屏可视化页面配置方法和系统 | |
CN107450904A (zh) | 标题栏的绘制方法和装置 | |
CN110414345A (zh) | 卡通图像生成方法、装置、设备及存储介质 | |
CN109460197A (zh) | 一种用户收据动态打印方法、装置、设备及可读存储介质 | |
CN109614189A (zh) | 一种实现app图标动态加载动画的系统、方法以及装置 | |
CN111599222A (zh) | 一种沙盘展示方法及装置 | |
CN109271220A (zh) | 通过手势操作控制页面返回的方法、计算设备和存储介质 | |
KR101725068B1 (ko) | 전자서적의 리소스를 이용한 워크북 제공장치 및 그 방법 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200901 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 15 layer self unit 02 Applicant before: GUANGZHOU UC NETWORK TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190312 |