使用如下工具类:
/**
* 状态栏相关工具类
*
*/
public class StatusBarUtils {
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));
//底部导航栏
window.setNavigationBarColor(activity.getResources().getColor(colorResId));
}
} catch (Exception e) {
e.printStackTrace();
}
}
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));
//底部导航栏
window.setNavigationBarColor(dialog.getContext().getResources().getColor(colorResId));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
注,应用的主题一定要设置成 Theme.AppCompat.Light.NoActionBar
,否则界面上导航栏的下边就会出现一个黑色阴影

正确显示

主题设置错误