Android中的状态栏是屏幕上醒目的部分,所有通知指示,电池寿命,时间,连接强度以及此处显示的所有内容均如此。 Android用户在使用Android应用程序时可能会多次查看状态栏。状态栏的颜色应遵循布局的颜色组合,这是设计中非常重要的部分。您可以在手机上查看许多android应用程序,并可以看到它们如何根据其主要颜色对其进行了更改。可以使用多种方法来更改状态栏的颜色,但是我们将向您介绍可以在Java或Kotlin中使用的最佳手动选择的两种方法。
方法1:创建一个新主题
您可以在使用Kotlin或Java构建的应用程序中遵循此方法。它将在两者中都起作用。
第1步:打开Android Studio并通过选择一个空活动来启动一个新项目。给它一个选择的名称,然后选择您的语言和API级别。最后单击完成。
步骤2:通过导航res / values / styles.xml来找到一个名为styles.xml的XML文件。
步骤3:通过导航res / values / colors.xml来找到另一个XML文件,然后在此处为状态栏添加要更改的颜色。
步骤4:现在在style.xml文件中,将以下代码添加到 resources>标记之前,并更改其颜色作为您的选择。 ColorPrimaryDark始终负责状态栏的颜色。
XML
Java
if (Build.VERSION.SDK_INT >= 21) {
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(this.getResources().getColor(R.color.colorPrimaryDark));
}
Kotlin
if (Build.VERSION.SDK_INT >= 21) {
val window = this.window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.statusBarColor = this.resources.getColor(R.color.colorPrimaryDark)
}
您可以使用android:statusBarColor进行相同操作,但仅在API级别21以上才可以使用。状态栏的ColorPrimaryDark在API级别19中也将不支持。默认情况下,在大多数API级别中,ColorPrimaryDark将是默认颜色statusBarColor,因此最好更改ColorPrimaryDark。
Tip: You can create multiple themes and you can use them in any activity. In any theme, There is a set of colors that needs to be defined, you can also create new colors in the colors.xml file in the same directory and use it on the styles.xml file.
步骤6:现在转到manifest / AndroidManifest.xml,然后在此处搜索要应用该主题或更改状态栏颜色的活动。并添加属性android:theme =” @ style / DemoTheme”。
大功告成!通过在模拟器或物理设备上运行它来检查您的应用程序。
方法2:使用setStatusBarColor方法
此方法只能在以上API级别21中使用。正式地,状态栏颜色不支持低于API级别21。尽管,在这里,我们添加了一个if条件,因为如果您未选择高于或等于API 21的情况,则它将检查android API版本,然后执行代码。不会更改状态栏的颜色(低于API级别21),但其余代码可以正常工作。
第1步:打开android studio并创建一个具有空活动的新项目后。
步骤2:导航到res / values / colors.xml ,并为状态栏添加要更改的颜色。
步骤3:在MainActivity中,将此代码添加到onCreate方法中。不要忘记用colorName替换所需的颜色。
Java
if (Build.VERSION.SDK_INT >= 21) {
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(this.getResources().getColor(R.color.colorPrimaryDark));
}
科特林
if (Build.VERSION.SDK_INT >= 21) {
val window = this.window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.statusBarColor = this.resources.getColor(R.color.colorPrimaryDark)
}
步骤4:尝试在Android模拟器或物理设备上运行您的应用程序。查看更改。