跨应用程序的自定义导航栏

Custom Navigation Bar across application

我对在我的所有应用程序中自定义 Android NavigationBar 的应用程序感兴趣。与 NavBar Apps 的方式相同。

到目前为止,我发现了两种可能性,但它并不完全符合我的要求:

SystemBarTint 库 (here) 仅当您将应用设置为半透明并在 NavigationBar 后面显示背景 "tint" 时才有效。

setNavigationBarColor(int color) (here) 您只能为 NavigationBar 使用一种颜色(而不是可绘制对象)。

我想做一个始终 运行 并且可以设置可绘制对象而不是 NavigationBar 的黑色的应用程序

您不能更改所有应用程序的 status/navigation 条形颜色,除非您是 root 用户并且您的自定义 rom/自定义启动器支持此功能。

您只能使用您提供的任何链接在您自己的应用程序中更改此设置。但这不会扩展到其余的设备应用程序。

如果案例在您自己的应用程序中,您可以通过为导航栏使用 setNavigationBarColor 和为状态栏使用 material 设计库(在 material 设计中设置 secondaryColor 来实现。

我找到了一种在(几乎)所有应用程序中自定义 NavigationBar 的方法。 (关注 this

使用此权限:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

然后我创建了一个调用的服务:

WindowManager.addView(View v, LayoutParams p)

我的 MainActivity 启动了这个服务。