现在通知栏基本是每个app项目必备的功能,最近项目里面有环信IM功能,所以就仿微信通知栏写了一个:

  • 先看效果图:

上面是android7.1系统的显示效果:

Android在appcompat-v7库中提供了一个NotificationCompat类来处理新老版本的兼容问题,我们在编写通知功能时都使用NotificationCompat这个类来实现,appcompat-v7库就会自动帮我们做好所有系统版本的兼容性处理了。一段基本的触发通知代码如下所示:

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
Notification notification = builder
.setContentTitle("通知标题")
.setContentText("通知内容")
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.build();
manager.notify(1, notification);
  • 先来介绍一下setContentTitle(),setContentText()的设置:
    在这里我是从本地的用户列表数据库中查找得到的setContentTitle为用户名称,setContentText为最新的消息内容,具体怎么做是操作数据库,这里就不说了。

  • 在看看setSmallIcon为项目logo:

    Android从5.0系统开始,对于通知栏图标的设计进行了修改。现在Google要求,所有应用程序的通知栏图标,应该只使用alpha图层来进行绘制,而不应该包括RGB图层。

    说的好像很玄乎,什么叫作只使用alpha图层来进行绘制呢?其实通俗点来讲,就是让我们的通知栏图标不要带颜色(基本上一个白色就好了)就可以了。

    不带颜色图标由UI设计师来设置(我这里先谁便用了一个)

  • setLargeIcon的设置这是重点,这个方法是用来显示图片的,我的源码如下:

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(appContext)                   .setSmallIcon(appContext.getApplicationInfo().icon).setSmallIcon(R.mipmap.icon_app_small).setWhen(System.currentTimeMillis()).setColor(Color.parseColor("#4e60c4")).setAutoCancel(true);if (friendListBean != null && !StringUtil.isBland(friendListBean.getHeadUrl())) {mBuilder.setLargeIcon(GetImageInputStream(friendListBean.getHeadUrl()) == null ? BitmapFactory.decodeResource(UIUtils.getContext().getResources(), R.mipmap.icon_logo) : GetImageInputStream(friendListBean.getHeadUrl()));} else {mBuilder.setLargeIcon(BitmapFactory.decodeResource(UIUtils.getContext().getResources(), R.mipmap.icon_logo));}Intent msgIntent = appContext.getPackageManager().getLaunchIntentForPackage(packageName);if (notificationInfoProvider != null) {msgIntent = notificationInfoProvider.getLaunchIntent(message);}PendingIntent pendingIntent = PendingIntent.getActivity(appContext, notifyID, msgIntent, PendingIntent.FLAG_UPDATE_CURRENT);
/*** 获取网络图片** @param imageurl 图片网络地址* @return Bitmap 返回位图*/public Bitmap GetImageInputStream(String imageurl) {URL url;HttpURLConnection connection = null;Bitmap bitmap = null;try {url = new URL(imageurl);connection = (HttpURLConnection) url.openConnection();connection.setConnectTimeout(6000); //超时设置connection.setDoInput(true);connection.setUseCaches(false); //设置不使用缓存InputStream inputStream = connection.getInputStream();bitmap = BitmapFactory.decodeStream(inputStream);inputStream.close();} catch (Exception e) {e.printStackTrace();}return bitmap;}
//            //标题mBuilder.setContentTitle(contentTitle);
//            //通知首次出现在通知栏,带上升动画效果的mBuilder.setTicker(notifyText);
//            //内容mBuilder.setContentText(summaryBody);mBuilder.setContentIntent(pendingIntent);// mBuilder.setNumber(notificationNum);Notification notification = mBuilder.build();if (isForeground) {notificationManager.notify(foregroundNotifyID, notification);notificationManager.cancel(foregroundNotifyID);} else {notificationManager.notify(notifyID, notification);}

主要的源码差不多就是这些了,这样一个和微信差不多的通知栏就出来了。

android 仿微信通知栏相关推荐

  1. php仿微信底部菜单,Android实现简单底部导航栏 Android仿微信滑动切换效果

    Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  2. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  3. Android 仿微信小视频录制

    Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章

  4. Android自定义弹窗模仿微信,Android仿微信右上角点击加号弹出PopupWindow

    本文实例为大家分享了Android仿微信右上角点击加号弹出展示的具体代码,供大家参考,具体内容如下 一.要弹出的布局,随便设计 android:layout_width="match_par ...

  5. android格式化时间中文版,Android 仿微信聊天时间格式化显示功能

    本文给大家分享android仿微信聊天时间格式化显示功能. 在同一年的显示规则: 如果是当天显示格式为 HH:mm 例:14:45 如果是昨天,显示格式为 昨天 HH:mm 例:昨天 13:12 如果 ...

  6. android滑动菜单图标,Android实现简单底部导航栏 Android仿微信滑动切换效果

    Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  7. android 底部滑动效果怎么做,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义view配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  8. android放微信@功能,Android仿微信语音消息的录制和播放功能

    一.简述 效果: 实现功能: 长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态生成录音文件,开始录音: 监听手指动作,规定区域.录音状态下手指划出规定区域取消录音,删 ...

  9. android 仿微信朋友圈 评论,2020年android 仿微信朋友圈 评论

    2020年android 仿微信朋友圈 评论 1.如果有人问我:那些艰难的岁月你是怎么熬过来的?我想我只有一句话回答:我有一种强大的精神力量支撑着我,这种力量名字叫"想死又不敢" ...

最新文章

  1. Python编程基础:第三十六节 模块Modules
  2. Kubernetes容器网络及网络模型
  3. 七桥问题属于计算机科学方法论中的,计算机科学与技术方法论-计算学科中的科学问题ppt...
  4. Spring Security中remember me
  5. php 字符串长度的解释
  6. 综合布线实训室建设方案(完整版)
  7. 《高效能人士的七个习惯》读后感
  8. java 发卡器_充值发卡器
  9. 基于FPGA驱动TLC5615模块
  10. 移动端touch事件和鼠标事件
  11. Python3 粗略计算PI的值
  12. [Algorithmic Toolbox学习笔记][week6]Placing Parentheses
  13. 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)
  14. 【python学习笔记】关于python Flask前后端分离跨域问题
  15. 基于Levy飞行和FDB的郊狼优化算法(matlab代码实现)
  16. [位压] 高精度加法
  17. 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——导读...
  18. 随着裁员浪潮滚滚而来,科技工作者的泡沫是否即将破灭?
  19. saber 2.7.1 maven 配置
  20. 第十七周 项目6.1 求出每名同学的总分和均分

热门文章

  1. 约数的一些定理——数论
  2. 基于Simulink的简单车辆动力学模型搭建
  3. UltraISO 绿色多国语言版
  4. 计算机再医学前沿领域的应用,计算机在医学前沿领域的应用
  5. Windows7下载钉钉DingTalk直播回放视频到本地
  6. 万字长文!深度剖析《数据安全法》下多方数据协同应用和隐私计算发展趋势
  7. 王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典” 第46讲视频、音频和PPT下载!
  8. 软件限时使用功能实现
  9. Vitamio直播框架的简单使用
  10. 笔记本电脑快速连接手机热点的方法