多语言展示
当前在线:1844今日阅读:60今日分享:41

如何设置android导航栏颜色

Android手机机型种类繁多,但是虚拟按键也就是底部的导航栏,不外乎两种设计方式,一种是作为虚拟按键设计到屏幕内部,一种是作为系统按键设计到屏幕外面
工具/原料

Android系统

方法/步骤
1

对于按键在屏幕内部的机型,因为虚拟按键也是屏幕内容的一部分,它也实际占据屏幕一定的高度,在系统应用中虚拟按键默认呈现的都是透明的背景色,但是在用户应用中如果未设置虚拟按键的背景颜色,它默认呈现的多为黑色。

2

对于按键在屏幕内部的机型,因为虚拟按键也是屏幕内容的一部分,它也实际占据屏幕一定的高度,在系统应用中虚拟按键默认呈现的都是透明的背景色,但是在用户应用中如果未设置虚拟按键的背景颜色,它默认呈现的多为黑色。

3

但是我们可能会看到有些App为了统一自己的风格样式,标题栏和底部的虚拟按键的颜色是一致的,他们是怎么实现的呢?

4

状态栏和标题栏的颜色设置可以通过theme主题来控制,这里不做介绍了,下面说一下如何改变底部虚拟按键的背景颜色:

5

大家看到了这是一个抽象方法,那么Window的子类有没有实现这个方法呢,Window有一个子类PhoneWindow它实现了父类所有的抽象方法

6

大家看到了这是一个抽象方法,那么Window的子类有没有实现这个方法呢,Window有一个子类PhoneWindow它实现了父类所有的抽象方法

7

这便是修改手机虚拟按键背景颜色的实现方法了我们如何得到PhoneWindow对象呢?

8

这个mWindow对象在Activity的attach方法中进行了实例化:

9

mWindow正是PhoneWindow的实例,到此我们就可以在Activity中改变系统虚拟按键的背景颜色了

10

这里有一个系统版本的判断,因为setNaviationBarColor(int color)这个Api是在API Level 21才出现的,即Android 5.0及以上的机型才可以使用该Api。(API Level与Android版本对照表由于我们一个项目中可能会有很多Activity,所以建议把修改虚拟按键的逻辑放在抽取的BaseActivity的onCreate()方法中。

注意事项

如果帮到您,请给小编点赞哦!

推荐信息