通过反射获取到状态栏的高度。代码注释都有。直接调用就行 import android.annotation.TargetApi; import android.app.Activity; import android.graphics.Color; import android.os.Build; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * ----------------------------------------------------------------- * Copyright (C) 2017-2018, by zhaojl, All rights reserved. * ----------------------------------------------------------------- * Desc: 描述 状态栏图标颜色 * File: NXStatusBar.java * Version: v1.0 * Create: 2018/10/31 21:53 * <p> * Changes (from 2018/10/31) * ----------------------------------------------------------------- * 2018/10/31 : Create NXStatusBar.java (zhaojl); * ----------------------------------------------------------------- */ public class NXStatusBar { public static void setStatusBarFull(Activity activity) { //检查是否 Android 5.0 以上版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { View decorView = activity.getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); activity.getWindow().setStatusBarColor(Color.TRANSPARENT); } } private static final int MIUI = 1; private static final int FLYME = 2; private static final int ANDROID_M = 3; public static void setTransparentForWindow(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { activity.getWindow().setStatusBarColor(Color.TRANSPARENT); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { activity.getWindow() .setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } } /** * 修改状态栏为全透明且不占位 */ @TargetApi(19) public static void transparencyBar(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Android修改状态栏颜色(已适配)
最新推荐文章于 2024-05-09 01:51:50 发布