Android透明状态栏
2016-10-07 17:33
190 查看
带遮罩
在values/styles下添加一个复制一份styles.xml为v19版本的styles.xml,里面加上<item name="windowNoTitle">true</item> <item name="android:windowTranslucentStatus">true</item>
在布局文件中,添加
android:fitsSystemWindows="true"
这样效果如下
代码如下
xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:background="@drawable/bg" tools:context="com.study.zhoujun.myfirstapp.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher"/> </LinearLayout> </RelativeLayout>
完全透明
实现完全透明不需要在styles.xml文件中添加<item name="android:windowTranslucentStatus">true</item>
只需要
<item name="windowNoTitle">true</item>
然后main_activity.xml代码不变,java文件中添加
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 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); }
效果如下
参考资料:
https://www.zhihu.com/question/36284456/answer/66781554
http://www.jianshu.com/p/aca4fd6743b1
更新
上面的透明状态栏只适用于布局文件的跟布局颜色或图片的沉浸,如果需要沉浸的是布局下的跟布局中的一个子布局的沉浸,会出现变为白边的情况相关文章推荐
- android4.2.2修改状态栏透明
- android4.2.2修改状态栏透明
- 兼容 Android 4.4 透明状态栏与导航栏
- Android 4.4+实现透明状态栏( transparent status bar)
- android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明
- 【转】android Button或者ImageButton背景透明状态设置
- Android 沉浸式状态栏以及 透明状态栏 和修改状态栏颜色
- Android 4.4 以上分分钟实现状态栏伪沉浸(状态栏透明)
- Android 4.4 沉浸式透明状态栏与导航栏
- android透明状态栏与开源库SystemBarTint的使用
- android4.0+版本修改状态栏透明的调试
- androidの4.4版本沉浸式透明状态栏与导航栏案例
- 兼容 Android 4.4 透明状态栏与导航栏
- Android 沉浸式透明状态栏与导航栏
- Android 4.4 后透明状态栏和导航栏效果实现(学习总结)
- android4.2.2修改状态栏透明
- Android 4.4 沉浸式透明状态栏与导航栏
- Android设置透明状态
- Android 4.4 沉浸式透明状态栏与导航栏
- Android内容覆盖透明状态栏下实现全屏模式下带状态栏的效果