18034727885
2026-06-26 253f680fb9666751e0f9a8e5e8f2f9e3eb1894e3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package com.example.basecore.util.sysbar
 
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 StatusBarUtils {
    /**
     * 获取状态栏高度
     */
    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
                }
            }
        }
    }
 
 
}