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

Android 5.0 Palette使状态栏变色

2016-06-15 17:01 381 查看
       看到新的东西,我们总是充满好奇,5.0的新控件出来挺长时间了,刚刚看来Palette的使用本来是要让状态栏动态变色的。但是在使用过程中发现一个问题,需要利用这个组件来使状态变色的前提条件是:图片是本地的。

       在这里,为大家推荐一篇博客,希望对大家有用:可以让状态栏变为透明。     

       在使用上面的工具时,必须用到这个类库。

       如果只是用到上面的工具和方法,可以实现状态栏透明,但是透明度不是很高,会在屏幕上留下一层黑色的阴影。



       要解决这个问题,需要在上面的基础上添加一行代码:以下是上面用到的两个方法:

public static void initSystemBar(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setTranslucentStatus(activity, true);
}
SystemBarTintManager tintManager = new SystemBarTintManager(activity);
tintManager.setStatusBarTintEnabled(true);
//状态栏无背景,这一句可以却出状态栏的黑色阴影
tintManager.setStatusBarTintResource(0);
}

private static void setTranslucentStatus(Activity activity, boolean on) {
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);
}



        在需要变色的地方写上:

setTranslucentStatus(this,true);
        这一就OK了。



        赶紧试试吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: