您的位置:首页 > 移动开发 > Android开发

Android沉浸式状态栏简单实现

2015-10-11 15:22 573 查看
最简单的实现类似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状态栏不同的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息