
最近在工作上遇上一个 bug...当有些应用发出通知的时候,在 statusbar 上边显示的图标是纯白色的方块.开始以为是图像加载的有问题,但是仔细研究之后发现,在 android kk 版本之前图像都是正常的,但是在 L 之后就开始变白,于是上网查询了一下,发现是在 android5.0 版本之后就故意将除黑白颜色之外的图标强制涂成白色,如果背景用非透明的颜色的话,就会全被涂成白色,变成一个白块,但是这个问题并非从 6.0 开始早在 5.0 的时候就开始出现这个问题了,为什么有些 app 厂商没有注意?还有 google 为什么要加上这种算法特地将颜色改变,求解答
1 monsoon 2015-10-30 09:16:34 +08:00 因为原先的那种形式的图标不好看, 颜色太花, 在状态栏上一点也不好看. 并且这也是 Material Design 的规范了 ( https://www.google.com/design/spec/patterns/notifications.html) 实际上这样的改变在 Android 5.0 里好看了很多, 在 Android 6.0 里有个 `android:windowLightStatusBar` 把状态栏变成亮色的设定 (图标会变成灰色), 如果 Icon 是单色的, 系统 tint 成其他颜色选择的余地就大了. 至少我用的很多 App 里很多厂商都的图标的显示都是正常的, 如果你看到有些厂商还不知道的, 那么就是他们菜或者是上班混日子. |
4 oott123 2015-10-30 09:28:06 +08:00 via Android 想一下就知道了,跪舔 iPhone 呗… 你想想嘛,在安卓做成圆角矩形背景填充,到状态栏就一坨白色了。 反正这种 App 我一概取消通知权限…连 QQ 都做得很好了,还有透明状态栏,不知道那些 App 在想什么,大概用 2.3 在开发吧。 |
5 cst4you 2015-10-30 09:32:39 +08:00 via Android qq 的提示图标简直日狗,现在都白了就他一个蓝色的 |
6 iv2ex 2015-10-30 09:36:55 +08:00 QQ 需要的时候下载一次 用完基本就删 因为我每次退出的时候明明选择了不通知消息 每次还是通知 MLGB啊 |
8 lincanbin 2015-10-30 09:55:18 +08:00 via Android 我也发现了,这导致我得另外再画一个图标,但是我的设计水平十分有限。 |
9 monsoon 2015-10-30 10:06:21 +08:00 @mowangdk 我说的太过了, 向暴风影音和那些无缘无故中枪的人道歉 (其中应该也有一些努力的开发者也许可能正好使用 5.0 以下的机子或者其他原因而一直没发现我觉得这可能性也是有的), 不过作为开发者还是应该 Eating your own dog food ( https://zh.wikipedia.org/wiki/Eating_your_own_dog_food), 这样才能做好产品! |
10 monsoon 2015-10-30 10:11:34 +08:00 @lincanbin 刚刚看了下你的那个论坛客户端的 github 的截图, 那个白色圆球的状态栏的图标意外的很萌! (绝对褒义) |
12 kaedea 2015-10-30 12:07:38 +08:00 哈哈哈,周围的产品、设计、研发都是那 IPHONE ,就我和测试用 Android ,还经常被吐槽“你工资没那么低吧还不买 Iphone ” |
13 monsoon 2015-10-30 12:19:00 +08:00 楼主你可以把 targetSdkVersion 改成 21 以下就可以了 (见 http://stackoverflow.com/a/28387744) 如果你的客户需要这样做, 你就这样做吧. |
15 tntjackie 2015-11-01 00:20:22 +08:00 举个栗子,大众点评好像白了很久了。。。这种事情呢,感觉靠的是程序猿和产品汪的自觉与情感 |
17 lee015 2015-12-17 08:32:06 +08:00 via Android 做了两种,动态检测状态栏下方界面颜色调整图标颜色, framework 提供接口应用自己调。最终都是在 systemUI 设置图标 colorfilter 。 5.0 以前不知道有没有 setcolorfilter 这样的接口,没有的话自己拿到 bitmap 改颜色也行。 |