Android 半透明通知栏显示 Activity全屏

来源:互联网 发布:a1453支持什么网络 编辑:程序博客网 时间:2024/05/29 11:19

1. Android 沉浸式通知栏显示

我们来了解Android的“沉浸式”这个词的释义,它是用来显示在APP UI设计上的,通知栏占据APP顶端与其颜色相同,随着APP的导航栏颜色改变而改变。

这里写图片描述这里写图片描述

2.下载systembartint.jar文件

http://download.csdn.net/download/zswqaxcde/9320203
将jar文件 粘贴到工程 Libs目录下

3.修改 activity_main 文件

添加代码
android:fitsSystemWindows=”true”
android:clipToPadding=”false”

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.mypsychologyapplication.MainActivity"    android:fitsSystemWindows="true"      android:clipToPadding="false"> </LinearLayout>

4.在MianActivity onCreate()方法中进行通知栏颜色更改

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                     requestWindowFeature(1);        setContentView(R.layout.activity_main);        // 4.4及以上版本开启          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {              setTranslucentStatus(true);          }          SystemBarTintManager tintManager = new SystemBarTintManager(this);          tintManager.setStatusBarTintEnabled(true);          tintManager.setNavigationBarTintEnabled(true);            // 自定义颜色                  tintManager.setTintColor(Color.parseColor("#50A1FD"));      }    @TargetApi(19)      private void setTranslucentStatus(boolean on) {          Window win = getWindow();          WindowManager.LayoutParams winParams = win.getAttributes();          final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;          if (on) {              winParams.flags |= bits;          } else {              winParams.flags &= ~bits;          }          win.setAttributes(winParams);      }