确定用于状态栏的背景颜色

时间:2015-06-28 11:58:28

标签: android android-5.0-lollipop android-toolbar

由于我已经为操作栏的背景颜色指定了十六进制值,因此我发现确定哪个十六进制值用于状态栏的背景颜色有点困难。当有人指定操作栏的背景颜色时,是否有任何工具可以帮助为状态栏找到合适的背景颜色?

ActionBar actionBar = getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#E32017")));

2 个答案:

答案 0 :(得分:2)

将StatusBar上的颜色设置为最接近ActionBar颜色的颜色:

private String actionBarColor = "#AC6363";

ActionBar 上设置背景颜色

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(actionBarColor)));

设置StatusBar颜色:活动 onCreate

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
    getWindow().setStatusBarColor(getFactorColor(Color.parseColor(actionBarColor), 0.8f));
}

获取因子颜色

private int getFactorColor(int color, float factor) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= factor;
    color = Color.HSVToColor(hsv);
    return color;
}

完成

答案 1 :(得分:0)

您只能从Lollipop(API级别21)开始执行此操作。

if (Build.VERSION.SDK_INT >= 21) {
    getWindow().setStatusBarColor(Color.parseColor("#E32017"));
}