Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通知图标,在某些设备上为全白色,在其他设备上为多色。为什么?_Android_Notifications_Icons_Android 5.0 Lollipop_Statusbar - Fatal编程技术网

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。成千上万的问题和答案,以及无数关于制造商变更的文章,都是明证。关于通知图标,您的问题似乎包含您寻求的证据。所以,再一次,我不确定你还想要什么。