更新时间:2022-01-14
状态栏
状态栏是 用于显示通知、设备状态的区域。
左边为状态栏可见,右边为状态栏隐藏。
隐藏状态栏
// 隐藏状态栏 statusBar
if (Build.VERSION.SDK_INT < 16) {
// Anroid4.1以下 --- API16
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
// Android4.1及以上
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
}
注意:当在onCreate() 方法中设置隐藏,那么当主屏幕按钮后,再返回,状态栏会重新出现。
显示状态栏
getWindow().getDecorView().setSystemUiVisibility(0);
调暗状态栏
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
获取状态栏颜色
public class MainActivity extends AppCompatActivity {
private static final String TAG = "AAAAAA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] status_bar_color_attr = {
android.R.attr.statusBarColor
};
TypedArray typedArray = obtainStyledAttributes(status_bar_color_attr);
int resourceId = typedArray.getResourceId(0, 0);
typedArray.recycle();
if (resourceId != 0) {
int color = getResources().getColor(resourceId);
Log.d(TAG, "color: " + color);
}
}
}
设置状态栏颜色
// Android5.0 --- API 21
if (Build.VERSION.SDK_INT > 21) {
getWindow().setStatusBarColor(Color.GREEN);
}
参考文档
隐藏状态栏:https://developer.android.com/training/system-ui/status