android - Android 5 Lollipop 中的通知栏图标变为白色

标签 android android-notifications android-5.0-lollipop

我有一个显示自定义通知的应用。问题是在 Android 5 中运行时,通知栏中的小图标显示为白色。我该如何解决这个问题?

最佳答案

接受的答案不(完全)正确。当然,它使通知图标显示为彩色,但这样做有一个很大的缺点 - 将目标 SDK 设置为低于 Android Lollipop!

如果按照建议通过将目标 SDK 设置为 20 来解决白色图标问题,您的应用将不会以 Android Lollipop 为目标,这意味着您无法使用 Lollipop 特定的功能。

看看http://developer.android.com/design/style/iconography.html ,您会看到白色样式是通知在 Android Lollipop 中的显示方式。

在 Lollipop 中,Google 还建议您使用将显示在(白色)通知图标后面的颜色 - 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();

    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;
}

关于android - Android 5 Lollipop 中的通知栏图标变为白色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28387602/

相关文章:

android - Android 8 上通知 channel 的默认优先级

android - ImageView 下方绘制了波纹

android - fragment 内容在抽屉导航中的 ActionBar 上重叠

Canvas 上的 Android 文本

android - 在 singleTask Activity 的 onCreate() 中使用旧的额外内容

安卓 API21 : VoiceInteractionService onReady() not called

Android - Material 设计 - 如何设置上下文菜单的背景颜色

android - 错误 : Could not find or load main class org. gradle.wrapper.GradleWrapperMain

android - 如何在 Eclipse 中解析 javax.xml.bind.JAXBContext?

java - cancel() 或 cancelAll() 不取消来自应用程序的通知