Android设置顶部状态栏颜色

参考博客:https://blog.csdn.net/qq_36982160/article/details/82350993
一张图了解android状态栏颜色划分

在这里插入图片描述

方法一:通过代码设置状态栏颜色

/** 
 * 状态栏相关工具类 
 * 
 */  
public class StatusBarUtils {  

    //设置Activity对应的顶部状态栏的颜色
    public static void setWindowStatusBarColor(Activity activity, int colorResId) {  
        try {  
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  
                Window window = activity.getWindow();  
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);  
                window.setStatusBarColor(activity.getResources().getColor(colorResId));  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

     //设置Dialog对应的顶部状态栏的颜色
    public static void setWindowStatusBarColor(Dialog dialog, int colorResId) {  
        try {  
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  
                Window window = dialog.getWindow();  
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);  
                window.setStatusBarColor(dialog.getContext().getResources().getColor(colorResId));  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  

方法二:通过主题设置状态栏颜色
res->values->styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
	<item name="colorPrimary">@android:color/holo_blue_bright</item>
	<item name="colorPrimaryDark">@android:color/holo_blue_bright</item>
</style>

然后在布局的xml里面指定theme

android:theme="@style/AppTheme"

1:AndroidManifest.xml文件中的targetSdkVersion必须设置在 21 以上。
2.parent主题必须是 Theme.AppCompat 开头,兼容包下的主题,所以必须一用 v7 包

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章