最近在Android5.0设备上发现一个问题:通知图标突然变成了白色的方块而不是代码中设置的icon。

细读开发者文档其实也可以发现一些线索,虽然笔者是直接查的源码发现的问题原因。http://developer.android.com/design/patterns/notifications.html 一文的Use distinct icons部分介绍了几点关于通知的建议,其中的有两点是建议开发者不要做的行为。

Don't
Place any additional alpha (dimming or fading) into your small icons and action icons; they can have anti-aliased edges, but because Android uses these icons as masks (that is, only the alpha channel is used), the image should generally be drawn at full opacity.Don't
Use color to distinguish your app from others. Notification icons should only be a white-on-transparent background image.

简单的说就是5.0后Android官方建议不要为通知的图标添加任何额外的透明度,渐变色,不要企图用颜色将通知图标与其他应用,比如系统应用,应用的通知图标只能是在透明的背景上有白色的图案。
至于原因,文档并没有细说,只是提到5.0系统将会在底层处理图标,想知怎么处理的可以参考Android SDK API level 21后的Notificaiton源码,里面写的较详细。

processSmallIconAsLarge方法里面负责将我们设置的smallIcon二次处理,也就是这里会改变我们最终看到的通知图标,包括顶部状态栏和下拉显示的小图标。

notification 发送通知后顶栏的小图标不对,为纯白色而不是设置的smallIcon 的原因相关推荐

  1. win10任务栏WIFI小图标不见了--解决办法

    记录一下昨天遇到的一个小问题,昨天重启电脑后发现任务栏WIFI小图标不见了,但是还是在快捷操作的列表里可以看到,控制面板也可以看到,就是找不到小图标了.经过一番试错,最终 找到一种最有效的方法分享出来 ...

  2. windows任务栏右侧小图标显示不完整

    之前发现windows电脑右侧小图标显示不完整 百度了一下,只需要新建一个bat文件,内容是 cd /d %userprofile%\AppData\Local\Microsoft\Windows\E ...

  3. 电脑下面的任务栏怎么取消隐藏_电脑桌面右下方任务栏的小图标如何隐藏

    装机不再有难度! U启大师 U启大师小科普 Ctrl+B 粗体 Ctrl+I 斜体 Ctrl+U 下划线 Ctrl+Shift 输入法切换 Ctrl+空格 中英文切换 Ctrl+Home 光标快速移到 ...

  4. Win10 任务栏使用小图标

    修改效果图示 修改前效果 操作方式 第一步 第二步

  5. Android Pixel手机Notification小图标显示白方块问题

    1 问题 我遇到的问题是在Google的Pixel手机上,当通知显示出来时,对应小图标的icon的样式是一个小白块 2 setSmallIcon() 按照google的说法,这个小图标是通过setSm ...

  6. Win10 任务管理栏 太宽问题的解决 及应用只有小图标没有图形化界面问题解决

    1.在任务栏右键 ,取消任务栏锁定(如果之前没有锁定过跳过该步骤) 2.上下拖拽任务栏宽度到最小或者是自己满意的宽度 3.重新锁定任务栏(如果不喜欢锁定不锁定也是ok的) 在解决该问题的过程中,发现打 ...

  7. android Foreground Service 前台服务/notification全局通知

    android Foreground Service 前台服务/notification全局通知 前言 要素简介 前台服务(Foreground Service) 全局通知(notification) ...

  8. Vant 库中如何给 List 列表组件的 cell 中左右两边来添加小图标?

    Ⅰ.问题描述: 1.Vant 中 List 列表的使用是方便且常用的,但如何给 List 组件中添加小图标而达到想要的效果呢? 2.图例展示: 其一.想要在 Vant 的 List 组件右边添加 播放 ...

  9. android 推送的小图标,android - 推送通知中没有声音并且没有自定义的小图标 - 堆栈内存溢出...

    我已经使用Firebase Cloud Messaging实现了推送通知,除了几个自定义问题之外,其他所有功能都正常运行: 当我从Notification Composer工具发送测试通知时,清单中设 ...

  10. Android发送通知——通知栏(Notification)

    Android发送通知--通知栏(Notification) 通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒.来自他人的通信信息或您应用中的其他实时信息.在发出一条通知后, ...

最新文章

  1. 对端边缘云网络计算模式:透明计算、移动边缘计算、雾计算和Cloudlet
  2. linux shell 替换字符串的几种方法,变量替换${},sed,awk
  3. scrollWidth,clientWidth,offsetWidth的区别
  4. 定时器和promise_Promise面试题,控制异步流程
  5. iOS经典面试题之分析self class与super class的区别和底层原理
  6. 使用SecureCRT时屏幕僵死的处理方法——Linux终端设置技巧
  7. _declspec(naked) 使用
  8. ajax 异步插入图片到数据库(多图上传)
  9. python大小写转换_python字符串大小写转换
  10. Rust之字符串,元组,数组,切片,打印优化
  11. SQL Server 自增字段归零等问题
  12. 支付1000元咨询费,如何让PB编写的程序不能被反编译?
  13. Linux keypad 设备树,beaglebone black通过devicetree配置矩阵键盘matrix-keypad
  14. Win10+Ubuntu+Deepin+macOS+PhoenixOS+FydeOS+centOS+openSUSE+Kylin+ChromeOS+RedFlag等多系统安装(包含rEFind引导)
  15. 分享 | 将Pytorch模型部署到Movidius神经计算棒
  16. 450套大屏模板整理
  17. 如何让OpenwrtX86和win7双系统共存在一块硬盘
  18. 纯css实现视差滚动加文字,纯CSS视差滚动原理及实例
  19. MATLAB 插值+计算离散点曲率
  20. 招商银行信用卡中心笔试编程题 - 序列找数

热门文章

  1. ioi 赛制_如何评价 IOI 2017(国际信息学奥林匹克竞赛)?
  2. 干货!mysql初始密码
  3. 微信点击链接直接跳转手机默认浏览器下载APP的APK文件实现code
  4. dellt130服务器做系统,戴尔Dell R330;T130安装系统后键盘鼠标不能使用
  5. 全国信息技术标准化技术委员会汉字内码扩展规范(GBK)
  6. 计算机wifi无法打开,苹果Mac电脑WiFi无法打开解决办法
  7. 如何启用计算机的无线功能,笔记本电脑怎么开WiFi_笔记本电脑如何打开WIFI功能-win7之家...
  8. Mybatis 大于小于符号解决
  9. 高项47个过程及输入、输出、工具解释
  10. 用c语言实现BF算法