Android5.0之后,谷歌为了使通知栏图标更加统一,小图标必须使用一张背景镂空只包含黑白两色的透明图片才能正常显示。
如果使用图片不正确,则会出现显示异常,小图标会变成一个白块。
举个栗子
简单的建一个项目,弹出一个通知:
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this);
builder.setContentTitle("Notification Test")
.setContentText("This is a Notification")
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(MainActivity.this.getResources(), R.mipmap.ic_launcher));
manager.notify(0, builder.build());
大小图标都是ic_launcher,项目默认的图标,是背景透明的,做Android的都见过,长这样:
![](https://img.haomeiwen.com/i1013525/080088fc32d6f9b8.png)
在API23测试通知显示正常:
![](https://img.haomeiwen.com/i1013525/8616040262f24af0.png)
![](https://img.haomeiwen.com/i1013525/533086838313ab47.png)
当把图片换成不透明的彩色图片:
![](https://img.haomeiwen.com/i1013525/0f3469a741339c4a.png)
随机截的图[麻朵姑娘]
大图标正常,小图标变成小白块:
![](https://img.haomeiwen.com/i1013525/3a15f3836f52597e.png)
![](https://img.haomeiwen.com/i1013525/757a75234b0a4a2f.png)
so,是时候让你的UI小姐姐给自己做张背景镂空的黑白logo了
网友评论