Android:如何将状态栏和导航栏设置为半透明

Android:如何将状态栏和导航栏设置为半透明,android,android-layout,android-xml,android-statusbar,android-navigation-bar,Android,Android Layout,Android Xml,Android Statusbar,Android Navigation Bar,在一些应用程序中,我注意到状态栏和导航栏是透明的,但并不完全透明。我不知道这是背景色还是其他颜色。有人能告诉我如何实现这一点吗?多谢各位 您可以使用以下两种方法: getWindow().setStatusBarColor(Color.parseColor("#20111111")); getWindow().setNavigationBarColor(Color.parseColor("#20111111")); 您可以使用以下两种方法: getWindow().setStatusBarCo

在一些应用程序中,我注意到状态栏和导航栏是透明的,但并不完全透明。我不知道这是背景色还是其他颜色。有人能告诉我如何实现这一点吗?多谢各位


您可以使用以下两种方法:

getWindow().setStatusBarColor(Color.parseColor("#20111111"));
getWindow().setNavigationBarColor(Color.parseColor("#20111111"));

您可以使用以下两种方法:

getWindow().setStatusBarColor(Color.parseColor("#20111111"));
getWindow().setNavigationBarColor(Color.parseColor("#20111111"));

这不仅仅是设置导航栏颜色和状态栏颜色,你还必须让你的内容显示在两者下面

我在utils类中使用以下方法在setContentView之前的活动中设置它

在活动中使用它:

public class MyActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        int statusBarColor = android.graphics.Color.parseColor("#40FF0000");
        int navBarColor = android.graphics.Color.parseColor("#6E00FF00");
        MyUtils.setWindowStatusNav(getWindow(), statusBarColor, navBarColor);

        setContentView(R.layout.my_activity);
    }
}
要隐藏导航栏和状态栏,请调用此方法:

public static void setWindowStatusNavHidden(android.view.Window window) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        int uiVisibility = window.getDecorView().getSystemUiVisibility();
        uiVisibility |= View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

        window.getDecorView().setSystemUiVisibility(uiVisibility);
    }
}
使用完成:

public class MyActivity extends AppCompatActivity {

    static boolean statusNavVisible = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        int statusBarColor = android.graphics.Color.parseColor("#40FF0000");
        int navBarColor = android.graphics.Color.parseColor("#6E00FF00");
        MyUtils.setWindowStatusNav(getWindow(), statusBarColor, navBarColor);

        setContentView(R.layout.my_activity);

        Button btnShowHide = findViewById(R.id.my_button);
        btnShowHide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (statusNavVisible) {
                    statusNavVisible = false;
                    MyUtils.setWindowStatusNavHidden(getWindow());
                } else {
                    statusNavVisible = true;
                    MyUtils.setWindowStatusNav(getWindow(), statusBarColor, navBarColor);
                }
            }
        });
    }
}

这不仅仅是设置导航栏颜色和状态栏颜色,你还必须让你的内容显示在两者下面

我在utils类中使用以下方法在setContentView之前的活动中设置它

在活动中使用它:

public class MyActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        int statusBarColor = android.graphics.Color.parseColor("#40FF0000");
        int navBarColor = android.graphics.Color.parseColor("#6E00FF00");
        MyUtils.setWindowStatusNav(getWindow(), statusBarColor, navBarColor);

        setContentView(R.layout.my_activity);
    }
}
要隐藏导航栏和状态栏,请调用此方法:

public static void setWindowStatusNavHidden(android.view.Window window) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        int uiVisibility = window.getDecorView().getSystemUiVisibility();
        uiVisibility |= View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

        window.getDecorView().setSystemUiVisibility(uiVisibility);
    }
}
使用完成:

public class MyActivity extends AppCompatActivity {

    static boolean statusNavVisible = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        int statusBarColor = android.graphics.Color.parseColor("#40FF0000");
        int navBarColor = android.graphics.Color.parseColor("#6E00FF00");
        MyUtils.setWindowStatusNav(getWindow(), statusBarColor, navBarColor);

        setContentView(R.layout.my_activity);

        Button btnShowHide = findViewById(R.id.my_button);
        btnShowHide.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (statusNavVisible) {
                    statusNavVisible = false;
                    MyUtils.setWindowStatusNavHidden(getWindow());
                } else {
                    statusNavVisible = true;
                    MyUtils.setWindowStatusNav(getWindow(), statusBarColor, navBarColor);
                }
            }
        });
    }
}

谢谢,你知道谷歌使用的确切颜色吗?我不知道确切颜色,但是颜色。parseColor20111111这将帮助你。谢谢,这非常接近。快乐编码:我得到不透明颜色谢谢,你知道谷歌使用的确切颜色吗?我不知道确切颜色,但是颜色。parseColor20111111这将帮助你。谢谢,这非常接近。快乐编码:我得到了不透明的颜色谢谢,你的答案很有用谢谢,你的答案很有用