日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android控制状态栏颜色的两种方式

發布時間:2023/12/20 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android控制状态栏颜色的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android 中設置them為Theme.AppCompat.Light.NoActionBar時狀態欄是灰底白字的。但是如果我們需要白底黑字,該怎么辦呢?

方法一、

最簡單的辦法是在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.testimport 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.ColorIntobject 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.TRANSPARENTif (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}}}}}

總結

以上是生活随笔為你收集整理的Android控制状态栏颜色的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。