由于我已经为操作栏的背景颜色指定了十六进制值,因此我发现确定哪个十六进制值用于状态栏的背景颜色有点困难。当有人指定操作栏的背景颜色时,是否有任何工具可以帮助为状态栏找到合适的背景颜色?
ActionBar actionBar = getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#E32017")));
答案 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"));
}