Android 通知图标,在某些设备上为全白色,在其他设备上为多色。为什么?
我的问题不是如何创建白色图标。 我只是想弄清楚自动白色过滤器什么时候启动。 我已经阅读过从棒棒糖开始的通知图标,它们会自动变成白色的“剪影”,因此,即使您使用带有Android 通知图标,在某些设备上为全白色,在其他设备上为多色。为什么?,android,notifications,icons,android-5.0-lollipop,statusbar,Android,Notifications,Icons,Android 5.0 Lollipop,Statusbar,我的问题不是如何创建白色图标。 我只是想弄清楚自动白色过滤器什么时候启动。 我已经阅读过从棒棒糖开始的通知图标,它们会自动变成白色的“剪影”,因此,即使您使用带有setSmallIcon的彩色图像,其任何不透明部分在状态栏中显示时都会变成全白色 这正是它在我从android studio开始的每一个nexus/像素仿真器上实际所做的。任何安卓版本,包括5、6、7、8,都能做到这一点 但我直到最近才发现这个棒棒糖功能,因为一直以来,甚至现在,通过在真实设备上加载完全相同的应用程序,我总是在状态栏中
setSmallIcon
的彩色图像,其任何不透明部分在状态栏中显示时都会变成全白色
这正是它在我从android studio开始的每一个nexus/像素仿真器上实际所做的。任何安卓版本,包括5、6、7、8,都能做到这一点
但我直到最近才发现这个棒棒糖功能,因为一直以来,甚至现在,通过在真实设备上加载完全相同的应用程序,我总是在状态栏中看到原始的多色图像。这发生在三星s5neo、华为p8lite和许多其他产品上
我问了我的用户,显然有些人看到他们是白色的,有些人看到他们是彩色的。有些人用奥利奥看到它们是白色的,有些人用奥利奥看到它们是彩色的。这似乎还取决于我使用的具体图标,因为有些用户报告他们在同一台设备上看到的图标,有些是白色的,有些是彩色的
我与setSmallIcon
一起使用我的ic_启动器
,这样就可以从资源中应用它,或者使用从外部源获取的一些绘图表创建的Icon
对象。
我使用像素化的字符精灵作为图标,所以当我说“有色”时,我不是指“绿色”,而是指一个真正多彩的图像
我的应用程序有sdk target 27,它还使用了一些oreo功能
那么,发生了什么事?我到处都读到,它应该在任何>=棒棒糖设备上制作剪影,但这显然不是了解它的全部内容,我想更好地理解它。
例如,如果我有sdk目标27,我的oreo用户如何能看到用setSmallIcon设置的彩色图像?
有人能解释一下吗?谢谢 使用白色像素和alpha通道创建通知图标,您将获得一致的结果 一些设备制造商修补了安卓系统。显然,对于一些人来说,这种修补包括支持非标准通知图标。您无法提前准确地知道哪些设备(10000多种型号中的哪些)会有这种行为
如果设备制造商雇用您构建应用程序,或希望从您处获得应用程序许可证,您可能会询问他们的通知图标策略,并进行调整以利用他们提供的任何功能。如果您在API 21或更高版本上运行应用程序,只有这样,它才会在通知中显示彩色图标。@nirmal说,这种行为发生在android 5、6、7和8上,所有这些API 21或更多都相当于android 5、6、7和8。看@nirmal是的,我知道。但从API21开始,图标应该自动转换为白色。你不是在说相反的吗?谢谢你的回答。即使可能不可能确切地知道哪些设备,我也很想看看一些例子。在我的例子中,彩色图标实际上工作得更好。因此,我想了解如何检测差异,以便在可能的情况下使用原始的多色图像,并特别准备剪影图像。@LukeB:您已经知道一些示例,您在问题中列出了它们。我不确定你还想要什么。对不起,你是对的。这个答案是否有来源,以验证它确实是由于制造商的修补,还是仅仅是基于个人经验的假设?(并不是说我不相信你的假设,这听起来很有道理。只是收集信息。)@LukeB.:“这个答案有来源吗”--嗯,我怀疑任何制造商都没有网页描述他们在Android操作系统版本中所做的每一项更改。“这仅仅是基于个人经验的假设吗?”——毫无疑问,制造商会修补Android。成千上万的问题和答案,以及无数关于制造商变更的文章,都是明证。关于通知图标,您的问题似乎包含您寻求的证据。所以,再一次,我不确定你还想要什么。