最近在工作上遇上一个 bug...当有些应用发出通知的时候,在 statusbar 上边显示的图标是纯白色的方块.开始以为是图像加载的有问题,但是仔细研究之后发现,在 android kk 版本之前图像都是正常的,但是在 L 之后就开始变白,于是上网查询了一下,发现是在 android5.0 版本之后就故意将除黑白颜色之外的图标强制涂成白色,如果背景用非透明的颜色的话,就会全部被涂成白色,变成一个白块,但是这个问题并非从 6.0 开始早在 5.0 的时候就开始出现这个问题了,为什么有些 app 厂商没有注意?还有 google 为什么要加上这种算法特地将颜色改变,求解答
1
monsoon 2015-10-30 09:16:34 +08:00 1
因为原先的那种形式的图标不好看, 颜色太花, 在状态栏上一点也不好看.
并且这也是 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 改颜色也行。
|