Android平台提供了默认的通知栏实现,如下的代码就能实现:

NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);builder.setContentTitle(getNotificationTitle()).setContentText(getNotificationContent()).setSmallIcon(iconDrawableId).setTicker(getNotificationContent()).setAutoCancel(true).setContentIntent(pendingIntent);manager.notify(notifyTitleId, builder.build());

这种方式虽然简单,但图标不能为网络图片,因此我们需要使用自定义的方式。

刚开始想先显示通知栏,之后异步下载并图片并更新图标,但却一直不能显示网络图片,如下:

ImageRequest request = new ImageRequest(getNotificationStatusIcon(),new Response.Listener<Bitmap>(){@Overridepublic void onResponse(Bitmap response) {remoteView.setImageViewBitmap(iconId, response);}}, 0, 0, Bitmap.Config.RGB_565,new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {}});

但图片获取成功了,显示无法成功。后来改变了顺序,先将图片下载了,之后再显示通知栏,居然显示正常了。

ImageRequest request = new ImageRequest(getNotificationStatusIcon(),new Response.Listener<Bitmap>(){@Overridepublic void onResponse(Bitmap response) {pushCustomNotification(context, response);}}, 0, 0, Bitmap.Config.RGB_565,new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {pushDefaultNotification(context);}});
......private void pushCustomNotification(Context context, Bitmap icon){Intent intent;try {intent = Intent.parseUri(getIntent(), 0);PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);final int notifyTitleId = ResourceUtil.getStringId(context,"push_mail_notification_title");NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);NotificationCompat.Builder builder = new NotificationCompat.Builder(context);final int iconDrawableId = ResourceUtil.getDrawableId(context, "mail_push_icon");final int iconId = ResourceUtil.getId(context, "push_notification_icon");final RemoteViews view = new RemoteViews(context.getPackageName(), ResourceUtil.getLayoutId(context, "layout_custom_notification"));view.setTextViewText(ResourceUtil.getId(context, "push_notification_title"), getNotificationTitle());view.setTextViewText(ResourceUtil.getId(context, "push_notification_content"), getNotificationContent());view.setImageViewBitmap(iconId, icon);builder.setCustomContentView(view).setSmallIcon(iconDrawableId).setTicker(getNotificationContent()).setAutoCancel(true).setContentIntent(pendingIntent);manager.notify(notifyTitleId+1, builder.build());} catch (URISyntaxException e) {e.printStackTrace();}}

Android通知栏图标显示网络图片相关推荐

  1. 如何解决android 通知栏不显示的问题

    如何解决android 通知栏不显示的问题 参考文章: (1)如何解决android 通知栏不显示的问题 (2)https://www.cnblogs.com/haloujava/p/11376290 ...

  2. android 在状态栏耳机图标显示图标显示图标显示图标,Android 通知栏图标

    先来一段发送普通通知的代码. NotificationManager notificationManager = (NotificationManager) getActivity().getSyst ...

  3. Android 通知栏图标

    2019独角兽企业重金招聘Python工程师标准>>> 1.Android 5.0开始 发现之前设置的通知栏图标都显示成了 灰色的方块,google规定必须是透明+白色的图片 2.A ...

  4. 友盟推送小米手机通知栏图标显示问题

    最近发现小米手机通知栏的icon显示成了一个灰色的方块, 如图所示 发现友盟不支持自定义通知图标 意思是 小米的设备,是无法自定义图标的,这个显示的默认图标是无法进行修改的. 我自己按照小米推送的推送 ...

  5. android圆形图标显示不全,android 桌面图标显示不全

    android 图标显示不全的现象,分析代码和配置文件如下操作可以解决问题 Workspace.java 文件 cellCountX = 1; while (CellLayout.widthInPor ...

  6. android 耳机图标显示图标,一种耳机图标的显示方法及终端与流程

    本发明涉及通信领域,特别是一种耳机图标的显示方法及终端. 背景技术: 目前的手机耳机类型,主要有三类:不带microphone的三段式耳机:带microphone的欧标耳机(也叫国标):带microp ...

  7. Android通知栏不显示 - RemoteView

    当自定义通知栏时,使用RemoteView自定义布局,通知栏不显示 原因: 根布局宽高设置问题,不能使用dimes里面的尺寸 <RelativeLayout xmlns:android=&quo ...

  8. 小米android通知栏图标不显示,MIUI开发版更新:已修复原生样式下部分通知图标不显示的问题...

    原标题:MIUI开发版更新:已修复原生样式下部分通知图标不显示的问题 今天上午,MIUI正式推送了MIUI 开发版20.8.13版本更新,部分机型延迟更新.因解决影响稳定性Bug,小米9.Redmi ...

  9. Android app图标显示未读消息数

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51082574 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  10. android中Picasso显示网络图片

    使用之前导入jar包(picasso.jar网上搜搜都有)或者在android studio中添加依赖compile 'com.squareup.picasso:picasso:2.5.2' 使用方式 ...

最新文章

  1. 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
  2. 计算机二级word保存要不要加.docx,计算机二级word实操题.docx
  3. kafka Detailed Replication Design V3
  4. spring-注入对象list
  5. 实现Repeater控件的记录单选(二)
  6. Kruskal 算法——并查集
  7. 行存储索引改换成列存储索引_索引策略–第2部分–内存优化表和列存储索引
  8. 异常来自 HRESULT:0x800A01A8
  9. 为imageView添加图片实现动画
  10. LCD显示GBK字库里面的汉字
  11. python模块专题——1.faker
  12. caj格式如何转成pdf格式
  13. 计算机直接切换到桌面,电脑怎样快速切换桌面_一键快速回到桌面的多种方法...
  14. RStudio用不了怎么办?
  15. 【解决】阿拉伯语等右向左排版文字CSS解决方案
  16. TCL info命令
  17. ASP.Net请求处理机制初步探索之旅 - Part 2 核心(转)
  18. c语言利用中断系统控制流水灯,基于流水灯的“微控制器应用”课程项目教学设计...
  19. Java中Type接口与Class类的区别联系
  20. 奇安信SSL VPN详细配置步骤

热门文章

  1. 学计算机电脑屏幕多大,买电脑显示器的技巧 电脑显示屏多大尺寸好
  2. 旅游胜地HTML,中国旅游胜地(一生必去的30个旅游景点)
  3. BGP双线IDC机房的接入方式
  4. 集成软件开发环境WipeOut
  5. docker运行jenkins挂掉_使用Jenkins在Kubernetes上设置CI/CD管道
  6. 微笑哥,工作快乐感与快乐企业文化
  7. 关于javascript中避免使用eval的理解
  8. 学计算机的要起一个群名,吸引人的学生群名字
  9. android连接程序,从Android应用程序连接到本地后端
  10. 微信推出网页版传输助手,真的好用吗?