在Android 5.0之前更改状态栏颜色

在Android 5.0之前更改状态栏颜色,android,Android,我知道状态栏的颜色可以与动作栏的颜色相同。但是,在Android 5.0之前,我不知道如何实现这个功能。我在互联网上尝试了一些功能,但都不起作用。如果你知道答案,请告诉我。谢谢。使用库来实现此功能,其兼容性如下 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" /> 您可以使用或简单地复制下面的静态工厂方法,并在活动的onCreate(Bundle savedInstanceState)中调用它

我知道状态栏的颜色可以与动作栏的颜色相同。但是,在Android 5.0之前,我不知道如何实现这个功能。我在互联网上尝试了一些功能,但都不起作用。如果你知道答案,请告诉我。谢谢。

使用库来实现此功能,其兼容性如下

 <uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />

您可以使用或简单地复制下面的静态工厂方法,并在
活动的
onCreate(Bundle savedInstanceState)
中调用它:

@SuppressLint("NewApi")
public static void setStatusBarColor(Activity activity, int color) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        activity.getWindow().setStatusBarColor(color);
    } else {
        try {
            ViewGroup decorViewGroup = (ViewGroup) activity.getWindow().getDecorView();
            View statusBarView = new View(activity);
            Resources res = activity.getResources();
            int id = res.getIdentifier("status_bar_height", "dimen", "android");
            LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    res.getDimensionPixelSize(id));
            params.gravity = Gravity.TOP;
            statusBarView.setLayoutParams(params);
            statusBarView.setBackgroundColor(color);
            decorViewGroup.addView(statusBarView);
        } catch (Exception ignored) {
            // status-bar color cannot be changed.
        }
    }
}