接受的答案不完全正确。当然,它会使通知图标显示颜色,但是这样做有一个很大的缺点-将目标SDK设置为比AndroidLolliop低!
如果您按照建议将目标SDK设置为20来解决您的白色图标问题,您的应用程序将不会针对AndroidLolliop,这意味着您不能使用特定于Lolliop的功能。
因此,我认为一个更好的解决方案是在应用程序中添加一个剪影图标,并在该设备运行AndroidLolliop时使用它。
例如:Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
return notification;
在getNotificationIcon方法中:private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.icon_silhouette : R.drawable.ic_launcher;}