相关文章推荐
深情的可乐  ·  Android ...·  1 月前    · 
眼睛小的领带  ·  使用 Azure SDK for Java ...·  3 月前    · 
豪情万千的键盘  ·  用于 Azure HDInsight ...·  1 年前    · 
坚强的汤圆  ·  linux ...·  1 年前    · 

最简单的办法是在AndroidManifest.xml 中给 <application> 或<activity> 设置theme:

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Light.NoActionBar默认是灰色背景,白色图标-->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="colorPrimaryDark">#FFFFFF</item>  <!--这一句控制状态栏背景颜色-->
            <item name="android:windowLightStatusBar" tools:targetApi="m">false</item>  <!--  这一句控制图标颜色:true 图标黑色 ,false 图标白色-->
    </style>
</resources>

也可以在代码中动态设置状态栏属性,下面是工具类:

package com.example.test
import android.annotation.TargetApi
import android.app.Activity
import android.content.Context
import android.graphics.Color
import android.os.Build
import android.view.View
import androidx.annotation.ColorInt
object StatusbarUtil {
     * 获取状态栏高度
    fun getStatusBarHeight(context: Context): Int {
        val resourceId = context.resources.getIdentifier("status_bar_height", "dimen", "android")
        if (resourceId > 0) {
            return context.resources.getDimensionPixelSize(resourceId)
        return 0
     * 设置状态栏透明
    fun setStatusBarTransparent(activity: Activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.window.statusBarColor = Color.TRANSPARENT
     * 设置状态栏背景颜色
    fun setStatusBarBgColor(activity: Activity, @ColorInt color: Int) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.window.statusBarColor = color
     * 设置状态栏白色 和 图标黑色
    fun lightMode(activity: Activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.window.statusBarColor = Color.WHITE  //白底
            activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR    //黑字
     *   设置状态栏颜色 和 图标颜色
     *   backgroundColor  背景颜色
     *   isIconBlack      图标+文本颜色    true 是黑色  false 白色
    fun customColorMode(activity: Activity, backgroundColor: String, isIconBlack: Boolean) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.window.statusBarColor = Color.parseColor(backgroundColor)  //白底
            if (isIconBlack) {
                activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR    //黑色图标+文字
            } else {
                activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE  //白色图标+文字
     *  设置状态栏透明 是否全屏 图标颜色
     *  isIconBlack   true 黑色黑标+文字  false白色
     *  isFullScreen 是否是全屏 true全屏,可以实现沉浸式状态栏
    fun transparentMode(activity: Activity, isIconBlack: Boolean, isFullScreen: Boolean = false) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            activity.window.statusBarColor = Color.TRANSPARENT
            if (isIconBlack) {
                if (isFullScreen) {
                    activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  //黑色图标+文字 全屏
                } else {
                    activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR   //黑色图标+文字
            } else {
                if (isFullScreen) {
                    activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN //白色图标+文字  全屏
                } else {
                    activity.window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE
				
我整理的一些关于【XML】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/Hpqqk2Android NoActionBar 状态栏透明的实现 在Android开发中,用户界面的优雅和视觉效果常常是吸引用户的关键因素之一。随着Material Design的推广,越来越多的应...
导读:最近在使用自己手机,发现一种动画效果非常不错,就是天气随着时间季节,状态栏和ToorBar颜色都会发生改变,搜索资料得出的三种方案….方案一 将手机状态栏透明化: 状态栏透明了,状态栏颜色就会自动跟随下面的布局 两种方式:1.代码方式 * 设置透明状态栏 * 可在Activity的onCreat()中调用
<!-- 文字及图标颜色:true为深色,false为浅色 --> <item name="android:windowLightStatusBar">true</item> <!-- 背景色 --> <item name="android:statusBarColor">?android:attr/colorPrimary</item>
android-statusbar-library 状态栏库,兼容5.0版本以下,不需要设置主题样式即可修改状态栏颜色,使用起来很方便 API说明:CoreStatusBar类,主要是用与修改状态栏颜色,获取状态栏和导航栏高度 public static void setStatusBarColor(Activity activity, int statusColor) 作用:设置状态栏颜色参数一:当前activity,参数二:状态栏颜色 public static void setStatusBarColor(Activity activity, int statusColor, int alpha) 作用:设置状态栏颜色参数一:当前activity,参数二:状态栏颜色(rgb),参数三:指定透明度(0-255) public static int getStateHeight(Cont
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); //注意要清除 FLAG_TRANSLUCENT_STATUS flag getWindow().clearFlags(WindowManager.LayoutParams....
修改颜色statusBar颜色可以在values的styles里面的 1.同过设置 <itemname="colorPrimaryDark">@color/colorStatusBar</item> 2.通过设置 <item name="android:statusBarColor">@color/colorAccent</item&gt...
```xml <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:statusBarColor">@color/colorPrimaryDark</item> </style> 这里使用了 `colorPrimaryDark` 作为状态栏颜色,你可以根据自己的需要修改。 2. 在 AndroidManifest.xml 文件中的 `<application>` 标签下添加 `android:theme` 属性: ```xml <application android:theme="@style/AppTheme" </application> 这样就完成了状态栏颜色的设置。注意,这个方法只在 Android 5.0 及以上版本有效。在低版本中可以考虑使用第三方库来实现。