V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mowangdk
V2EX  ›  Android

Android 的 notification 图标问题

  •  
  •   mowangdk · 2015-10-30 09:00:25 +08:00 · 15628 次点击
    这是一个创建于 3307 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在工作上遇上一个 bug...当有些应用发出通知的时候,在 statusbar 上边显示的图标是纯白色的方块.开始以为是图像加载的有问题,但是仔细研究之后发现,在 android kk 版本之前图像都是正常的,但是在 L 之后就开始变白,于是上网查询了一下,发现是在 android5.0 版本之后就故意将除黑白颜色之外的图标强制涂成白色,如果背景用非透明的颜色的话,就会全部被涂成白色,变成一个白块,但是这个问题并非从 6.0 开始早在 5.0 的时候就开始出现这个问题了,为什么有些 app 厂商没有注意?还有 google 为什么要加上这种算法特地将颜色改变,求解答

    第 1 条附言  ·  2015-10-30 09:48:07 +08:00
    而且客户现在希望我们将变白的图标再回复成原来的样子。。。。也是醉了
    第 2 条附言  ·  2015-10-30 09:53:02 +08:00
    而且华为 L 版本的手机保持了原来的颜色.....
    18 条回复    2015-12-17 08:33:07 +08:00
    monsoon
        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 里很多厂商都的图标的显示都是正常的, 如果你看到有些厂商还不知道的, 那么就是他们菜或者是上班混日子.
    mio4kon
        2
    mio4kon  
       2015-10-30 09:24:26 +08:00
    @monsoon 讲道理里的话估计都是用着 iPhone 的 android 开发人员.没有 5.0 手机 /斜眼笑
    monsoon
        3
    monsoon  
       2015-10-30 09:25:42 +08:00
    @mio4kon 你说的对, 我要讲道理.
    oott123
        4
    oott123  
       2015-10-30 09:28:06 +08:00 via Android
    想一下就知道了,跪舔 iPhone 呗…
    你想想嘛,在安卓做成圆角矩形背景填充,到状态栏就一坨白色了。
    反正这种 App 我一概取消通知权限…连 QQ 都做得很好了,还有透明状态栏,不知道那些 App 在想什么,大概用 2.3 在开发吧。
    cst4you
        5
    cst4you  
       2015-10-30 09:32:39 +08:00 via Android
    qq 的提示图标简直日狗,现在都白了就他一个蓝色的
    iv2ex
        6
    iv2ex  
       2015-10-30 09:36:55 +08:00
    QQ 需要的时候下载一次 用完基本就删
    因为我每次退出的时候明明选择了不通知消息 每次还是通知 MLGB 啊
    mowangdk
        7
    mowangdk  
    OP
       2015-10-30 09:44:09 +08:00
    @monsoon 暴风影音。。。。。。
    lincanbin
        8
    lincanbin  
       2015-10-30 09:55:18 +08:00 via Android
    我也发现了,这导致我得另外再画一个图标,但是我的设计水平十分有限。
    monsoon
        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), 这样才能做好产品!
    monsoon
        10
    monsoon  
       2015-10-30 10:11:34 +08:00
    @lincanbin 刚刚看了下你的那个论坛客户端的 github 的截图, 那个白色圆球的状态栏的图标意外的很萌! (绝对褒义)
    mowangdk
        11
    mowangdk  
    OP
       2015-10-30 11:39:55 +08:00
    @lincanbin 其实只要改造成两种颜色然后把其中一种颜色扣掉应该就可以了.....
    kaedea
        12
    kaedea  
       2015-10-30 12:07:38 +08:00
    哈哈哈,周围的产品、设计、研发都是那 IPHONE ,就我和测试用 Android ,还经常被吐槽“你工资没那么低吧还不买 Iphone ”
    monsoon
        13
    monsoon  
       2015-10-30 12:19:00 +08:00
    楼主你可以把 targetSdkVersion 改成 21 以下就可以了 (见 http://stackoverflow.com/a/28387744)
    如果你的客户需要这样做, 你就这样做吧.
    lee015
        14
    lee015  
       2015-10-30 19:01:47 +08:00 via Android
    @monsoon
    6.0 自带状态栏反色了? 5.0 时我还是自己实现的。
    tntjackie
        15
    tntjackie  
       2015-11-01 00:20:22 +08:00
    举个栗子,大众点评好像白了很久了。。。这种事情呢,感觉靠的是程序猿和产品汪的自觉与情感
    colatin
        16
    colatin  
       2015-12-16 18:00:00 +08:00
    @lee015 请问 5.0 是咋做的? 5.0 以前可以吗?
    lee015
        17
    lee015  
       2015-12-17 08:32:06 +08:00 via Android
    做了两种,动态检测状态栏下方界面颜色调整图标颜色, framework 提供接口应用自己调。最终都是在 systemUI 设置图标 colorfilter 。 5.0 以前不知道有没有 setcolorfilter 这样的接口,没有的话自己拿到 bitmap 改颜色也行。
    lee015
        18
    lee015  
       2015-12-17 08:33:07 +08:00 via Android
    @colatin 忘 @了
    做了两种,动态检测状态栏下方界面颜色调整图标颜色, framework 提供接口应用自己调。最终都是在 systemUI 设置图标 colorfilter 。 5.0 以前不知道有没有 setcolorfilter 这样的接口,没有的话自己拿到 bitmap 改颜色也行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1228 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 18:17 · PVG 02:17 · LAX 10:17 · JFK 13:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.