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这将帮助你。谢谢,这非常接近。快乐编码:我得到了不透明的颜色谢谢,你的答案很有用谢谢,你的答案很有用