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

Android 的 notification 图标问题

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

    最近在工作上遇上一个 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     Solana     2466 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 08:31 PVG 16:31 LAX 00:31 JFK 03:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86