因为google在android5.0上面做了限制,为了统一系统风格。之后的状态栏icon就不能够随便用一张色彩丰富的图片了,只能够有白色和透明两个颜色出现。

5.0以上(不包含5.0),系统默认通知栏图标为系统启动图标,会自动将通知栏的图标(有色区域)全部填充为白色,

像一个白色格子,这是Google 为了实现材料设计规范,特意为之。为了去除白色图标,镂空背景即可:

所以这之后的想要设置显示状态栏icon不为白色:这个icon只要背景需要透明,只让内容块纯白色。

另类的解决办法:(不推荐)

可以通过降低targetSdkVersion的方法,来达到显示彩色icon,但是不支持降低targetSdkVersion的方法。

(就是把AndroidManifest.xml uses-sdk节点的targetSdkVersion属性设置为21以下(不含21))

 

但是为了兼容5.0以下还正常使用:

我们判断下就可以分别设置setSmallIcon

// 5.0
        if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP){
            notificationBuilder.setSmallIcon(R.drawable.ic_aphla_logo);
        } else {
            notificationBuilder.setSmallIcon(R.drawable.ic_logo);
        }

setLargeIcon 正常使用,不需要特别处理。使用旧的icon图片即可。

因为smallicon已经是透明,或者白色了,这时可以设置:

notificationBuilder.setColor();

然后就有背景颜色在通知栏上了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐