根据我的问题,如何在不隐藏电池状态和wifi的情况下从蓝色(标记)更改为白色。下面是当前的XML外观
有人可以帮忙吗?
答案 0 :(得分:1)
如果您要通过编程方式更改状态栏颜色(并且前提是该设备具有Android 5.0或更高版本),则可以使用Window.setStatusBarColor()
只需尝试:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.BLUE);
}
答案 1 :(得分:1)
您可以通过编程方式进行此操作,也可以根据自己的选择进行XML颜色更新。
使用XML:
您可以在res / values / styles.xml中创建一个新主题,您将在其中更改状态栏颜色的“ colorPrimaryDark”:
<style name="AppTheme.BlueStatusBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimaryDark">@color/colorBlue</item>
</style>
然后将AndroidManifest.xml中的活动主题修改为所需的主题,在下一个活动中,您可以通过选择原始主题将颜色更改回原始颜色:
<activity
android:name=".XActivity"
android:theme="@style/AppTheme.BlueStatusBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是您的res / values / colors.xml的外观:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#c6d6f0</color>
<color name="colorBlue">#757575</color>
</resources>
以编程方式:
在科特林:只需一行。
window.statusBarColor = ContextCompat.getColor(this, R.color.colorBlue)
在Java中:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
getWindow().setStatusBarColor(getResources().getColor(R.color.colorBlue, this.getTheme()));
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(getResources().getColor(R.color.colorBlue));
}
答案 2 :(得分:1)
这是代码段引发,您可以在状态栏中更改状态栏颜色和对象或文本颜色
在下面的代码中添加您的值-v21 / styles.xml,这将在棒棒糖(5.0)中运行
edges
<resources>
<!-- Theam for activity or application where ever you want to change color of your status bar -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_secondary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>
</style>
</resources>
更改状态栏的颜色,并且windowLightStatusBar将从状态栏中更改文本或对象的颜色,例如如果将statusBarColor
设置为true,则字体和对象将为白色或浅色好像您设置为false一样,它将是黑暗的