Android沉浸式状态栏简单实现

来源:互联网 发布:混沌与秩序2救赎数据库 编辑:程序博客网 时间:2024/06/07 18:09

最简单的实现类似IOS的沉浸式状态栏效果的方法就是使用开源库SystemBarTint
第一步:当然是添加gradle依赖或者把这个库拷到自己项目中,其实就是一个类

compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

第二步:在项目的每个Activity界面的布局文件的根目录中添加以下两行代码:

              android:clipToPadding="true"              android:fitsSystemWindows="true"

第三步:写一个工具类,如下:

import android.app.Activity;import android.os.Build;import android.view.Window;import android.view.WindowManager;/** * Created by diyangxia on 2015/10/11. */public class CommonTools {    /**     *  为界面设置沉浸式状态栏效果     *  activity 当前Activity     *  res 颜色id或者图片资源id     */    public static void initSystemBar(Activity activity,int res) {        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {            Window win = activity.getWindow();            WindowManager.LayoutParams winParams = win.getAttributes();            final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;            winParams.flags |= bits;            win.setAttributes(winParams);        }        SystemBarTintManager tintManager = new SystemBarTintManager(activity);        tintManager.setStatusBarTintEnabled(true);        tintManager.setStatusBarTintResource(res);    }}

第四步:在Activity中调用方法,如果设置的是图片,其实一般很少设置图片,不过像QQ那样侧滑出来的背景全屏效果还是不错的,用这里的方法貌似实现不了;如果设置的是颜色,建议和每个界面顶部标题栏的背景色一致:

CommonTools.initSystemBar(MainActivity.this,android.R.color.holo_red_dark);

这里写图片描述

备注:这种情况只适合那种统一主题以及背景色的应用,要是像用FragmentTabhost实现的这种tab布局菜单的话,还是放弃使用吧,因为我简单尝试了一下,发现根本无法实现不同tab状态栏不同的功能。

0 0
原创粉丝点击