今天开始对自己做好的一个项目尽心优化,,为每一个界面的状态栏添加各自页面透明的颜色,这么多界面并且可以要自己定义状态栏的颜色,这肯定需要我们去对沉浸式进行一定的包装,所以写了一个简单的工具类.
第一步:导入第三方库:
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
第二步:对你所需要设置的界面布局的最顶层布局添加下面两个属性:
android:clipToPadding="false"
android:fitsSystemWindows="true"
第三步:直接调用用工具类:
StringColorUtils.initStatu(“自定义颜色”,”当前activity”);
工具类如下(很简单):
public class StringColorUtils {
public static void initStatu(String color,Activity activity) {
// 4.4及以上版本开启
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setTranslucentStatus(true,activity);
}
SystemBarTintManager tintManager = new SystemBarTintManager(activity);
tintManager.setStatusBarTintEnabled(true);
tintManager.setNavigationBarTintEnabled(true);
// 自定义颜色
tintManager.setTintColor(Color.parseColor(color));
}
@TargetApi(19)
public static void setTranslucentStatus(boolean on,Activity activity) {
Window win = activity.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);
}
}