【问题标题】:Small Icon Of Notifications Are Not Drawn In Gray On Oreo?通知的小图标不是在奥利奥上用灰色绘制的吗?
【发布时间】:2020-08-26 21:45:43
【问题描述】:

对于 Android 21+ 通知小图标必须是 alpha-only。否则android会将它们绘制成灰色。

我这里放了两台设备的通知截图,一个是奥利奥,一个是派,所以都是21+

Android Pie (小米 6),这没关系,它把图标画成灰色

Android Oreo (Samsung Galaxy A - 2016),小图标不是灰色的。 是不是很奇怪?

通知代码,

 Notification notification = new NotificationCompat
            .Builder(this, CHANNEL_ID)
            .setSmallIcon(R.mipmap.ic_launcher_bos_new)
            .setContentTitle(title)
            .setContentText(message)
            .setSubText(subtitle)
            .setAutoCancel(true)
            .setLights(ContextCompat.getColor(this, R.color.yellow), 1000, 1000)
            .setTicker(getString(R.string.app_name))
            .build();

为什么这在所有 21+ 设备上的行为都不一样?

【问题讨论】:

    标签: android android-notifications


    【解决方案1】:

    因为在某个时候,Google 意识到通知栏背景可以是任何颜色,这意味着他们必须将这些图标限制为仅使用 Alpha 通道。这允许系统自动重新着色图标以实现最大对比度。

    【讨论】:

    • 我可以理解这背后的原因,对于 21 多个设备。但是想知道第二张截图,为什么这个小图标绘制正确?这个设备也是 21+
    猜你喜欢
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    相关资源
    最近更新 更多