这里提供三种方式:javascript
1,主题方式
html
能够用于<appliction>节点下的主题,也能够根据项目需求放在相应的<活动>节点下的主题上;这种方式兼顾到Android自己状态栏对于不一样版本的适配4.4〜5.0全透明,5.0以上半透明),会根据不一样版原本适配。java
<item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item> <!--Android 5.x开始须要把颜色设置透明,不然导航栏会呈现系统默认的浅灰色--> <item name="android:statusBarColor">@android:color/transparent</item>
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//设置透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//设置透明导航栏 }
if (Build.VERSION.SDK_INT >= 21) { 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);//设置透明状态栏 // getWindow().setNavigationBarColor(Color.TRANSPARENT);//将导航栏设置为透明色 // getWindow().setStatusBarColor(Color.TRANSPARENT); getWindow().setStatusBarColor(Color.parseColor("#00000000")); }
开发中大部分需求是实现状态栏和顶部的控件是同一个颜色,同时,控件内容也不和状态栏重复。要实现这样的效果关键是在XML中给顶部控件添加上两个属性就能够了,这两个属性在我博客的Android中的XML属性中都有详细的文章。这里就很少赘述了。android
android:fitsSystemWindows="true" android:clipToPadding="true"