Android开发设置状态栏颜色透明

释放双眼,带上耳机,听听看~!

在Android4.4之前,我们的应用没法改变手机的状态栏颜色,如上图一样应用的风格非常不美观;为了提供更好的界面交互,google在Android4.4.2开始提供了设置沉浸式状态栏的方法,,实际的效果其实就是透明的状态栏,然后在状态栏的位置显示我们自定义的颜色,通常为应用的actionbar的颜色,或者是将应用的整体的一张图片也占据到状态栏中,网上很多大牛写过沉浸式状态栏的代码,今天介绍一种比较简单小白的状态栏透明话设置,足够应付简单的问题。

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在这里设置你要修改的状态栏样式
setContentView(R.layout.activity_main);
}
}
全透明状态栏代码和效果图如下:
 /**
* 全透状态栏
*/
if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
} else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//虚拟键盘也透明
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

半透明状态栏代码和效果图如下:

  /**
* 半透明状态栏
*/
if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
} else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//虚拟键盘也透明
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}

这样就完成了,用户标题栏需要自己设置padding,不然会覆盖到上面的系统字体的。

人已赞赏
Android文章

android计算器的实现方法(详解)

2020-1-24 12:15:59

Android文章

Android定制RadioButton样式的方法(三种)

2020-1-24 14:15:08

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索