令我惊讶的是我的APP的图标在我的Nexus 5的通知栏中出现了白色图标。这只在Nexus 5中出现。
关于这个问题我已经有了一个问题,答案显示我需要:目标20.我已经尝试过了:就像下面没有区别一样。
defaultConfig
{
applicationId "com.cn.redquest"
minSdkVersion 20
targetSdkVersion 20
versionCode 10
versionName "1.00"
}
有人可以帮我解决这个问题吗?
让我知道!
谢谢!
答案 0 :(得分:1)
将目标SDK设置为20意味着您没有为Android Lollipop构建应用程序。这将使您的通知图标显示所有颜色,但不是长期解决方案,因为您需要为Lollipop构建(至少最终)。
在http://developer.android.com/design/style/iconography.html,您可以了解白色样式是如何在Lollipop(SDK 21)中显示通知。 Google还建议使用自定义bg颜色 - https://developer.android.com/about/versions/android-5.0-changes.html
我认为更好的解决方案是在设备运行Android Lollipop时为系统提供一个轮廓图标。
例如:
Notification notification = new Notification.Builder(context)
.setAutoCancel(true)
.setContentTitle("My notification")
.setContentText("Look, white in Lollipop, else color!")
.setSmallIcon(getNotificationIcon())
.build();
并且,在getNotificationIcon方法中:
private int getNotificationIcon() {
boolean useSilhouette = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
return useSilhouette ? R.drawable.ic_silhouette : R.drawable.ic_launcher;
}