如何从原色生成暗色调并使用它设置状态栏颜色?请记住,如果颜色鲜艳,图标应该是暗的,反之亦然
答案 0 :(得分:1)
没有生成colorPrimaryDark的指南。它必须是原色的深色调。这是用于生成给定颜色的深色调的代码
public static int manipulateColor(int color, float factor) {
int a = Color.alpha(color);
int r = Math.round(Color.red(color) * factor);
int g = Math.round(Color.green(color) * factor);
int b = Math.round(Color.blue(color) * factor);
return Color.argb(a,
Math.min(r,255),
Math.min(g,255),
Math.min(b,255));
}
因子表示你想要变暗多少,在0-1之间传递任何东西
答案 1 :(得分:-1)
您可以将状态栏的颜色更改为: -
if (android.os.Build.VERSION.SDK_INT >= 21)
{
getWindow().setStatusBarColor(getResources().getColor(R.color.anycolor));
}
答案 2 :(得分:-1)
if (Build.VERSION.SDK_INT >= 21) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(getResources().getColor(R.color.primaryDark));
}
使用Window类中的setStatusBarColor(int)方法轻松完成。但请记住,此方法仅适用于API 21或更高版本。所以一定要检查一下,否则你的应用肯定会在较低的设备中崩溃。
这是此方法的工作示例代码。
答案 3 :(得分:-1)
可以在21 API及更高版本上更改StatusBarColor。 有两种方法可以设置statusBarColor
<item name="android:statusBarColor">@color/colorprimary</item>
或
如果您不想创建另一个文件夹,那么在您的主要样式中添加如下所示的
行<item name="android:statusBarColor" tools:targetApi="lollipop">@color/colorprimary</item>
您可以通过添加
等条件来设置它if(android.os.Build.VERSION.SDK_INT >= 21){ activity.getWindow().
setStatusBarColor(ContextCompat.getColor(activity, color));
}