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的都見過,長這樣:
ic_launcher.png
在API23測試通知顯示正常:
2017062401.png
2017062402.png
當把圖片換成不透明的彩色圖片:
2017062405.png
隨機截的圖[麻朵姑娘]
大圖標正常,小圖標變成小白塊:
2017062403.png
2017062404.png
so,是時候讓你的UI小姐姐給自己做張背景鏤空的黑白logo了