私はAndroidアプリケーションを開発中です。私のアプリでは、サーバーから来るカラーコードに従ってアクションバーの色を設定しています。背景色を設定しても問題ありません。しかし、私はまた、アクションバーのカラーコードに応じてステータスバーの色を変更したい。私は、色を暗くし、下のスクリーンショットのようにステータスバーに設定したいと思います。Androidのステータスバーの色を動的に設定すると機能しない
私が活動に
private void setStatusBarColor()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// finally change the color
window.setStatusBarColor(getResources().getColor(R.color.statusBarColor));
}
}
をこのようなステータスバーの色を設定する。しかし、この時のために私はカラーを動的に変更する必要があります。私は模擬色の値でテストしましたが、動作しません。以下の私のコードを見てください。活動で
のonCreate
teamColorCode = "#EB6343";
if(teamColorCode!=null && !teamColorCode.isEmpty())
{
int color = Color.parseColor(teamColorCode);
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color));
//set for action bar
float[] hsv = new float[3];
Color.colorToHSV(color,hsv);
hsv[2] *= 0.8f; // value component
color = Color.HSVToColor(hsv);
setStatusBarColor(color);
}
あなたは私がteamColorCode変数にカラーコード値を割り当てる見ることができるようにする方法。その後、その色を濃くして、ステータスバーの色を設定しようとしました。これはステータスバーの色を設定する方法です。
private void setStatusBarColor(int color)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// finally change the color
if(color>0)
{
window.setStatusBarColor(color);
}
else{
window.setStatusBarColor(getResources().getColor(R.color.statusBarColor));
}
}
}
これは私が得るものです:
あなたは、ステータスバーの色が変更されていない見ることができるように。アクションバーの色を暗くするステータスバーの色を変更するにはどうすればよいですか?
を変更するために使用このコードはアクションバーを持っているとして、あなたはステータスバーに設定し、同じ色を試してみていますか?はいの場合はそれを行うことができます。 https://material.google.com/style/color.html#color-color-palette、ActionBarを500、StatusBarを700色に設定します。 –
いいえ。アクションバーの色を暗くします。次に、ステータスバーに設定します。 –
私のカラーコードは動的です。サーバーから来ています。 –