android 仿微信通知栏
现在通知栏基本是每个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 仿微信通知栏相关推荐
- php仿微信底部菜单,Android实现简单底部导航栏 Android仿微信滑动切换效果
Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...
- android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...
Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...
- Android 仿微信小视频录制
Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章
- Android自定义弹窗模仿微信,Android仿微信右上角点击加号弹出PopupWindow
本文实例为大家分享了Android仿微信右上角点击加号弹出展示的具体代码,供大家参考,具体内容如下 一.要弹出的布局,随便设计 android:layout_width="match_par ...
- android格式化时间中文版,Android 仿微信聊天时间格式化显示功能
本文给大家分享android仿微信聊天时间格式化显示功能. 在同一年的显示规则: 如果是当天显示格式为 HH:mm 例:14:45 如果是昨天,显示格式为 昨天 HH:mm 例:昨天 13:12 如果 ...
- android滑动菜单图标,Android实现简单底部导航栏 Android仿微信滑动切换效果
Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...
- android 底部滑动效果怎么做,Android实现简单底部导航栏 Android仿微信滑动切换效果...
android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义view配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...
- android放微信@功能,Android仿微信语音消息的录制和播放功能
一.简述 效果: 实现功能: 长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态生成录音文件,开始录音: 监听手指动作,规定区域.录音状态下手指划出规定区域取消录音,删 ...
- android 仿微信朋友圈 评论,2020年android 仿微信朋友圈 评论
2020年android 仿微信朋友圈 评论 1.如果有人问我:那些艰难的岁月你是怎么熬过来的?我想我只有一句话回答:我有一种强大的精神力量支撑着我,这种力量名字叫"想死又不敢" ...
最新文章
- Python编程基础:第三十六节 模块Modules
- Kubernetes容器网络及网络模型
- 七桥问题属于计算机科学方法论中的,计算机科学与技术方法论-计算学科中的科学问题ppt...
- Spring Security中remember me
- php 字符串长度的解释
- 综合布线实训室建设方案(完整版)
- 《高效能人士的七个习惯》读后感
- java 发卡器_充值发卡器
- 基于FPGA驱动TLC5615模块
- 移动端touch事件和鼠标事件
- Python3 粗略计算PI的值
- [Algorithmic Toolbox学习笔记][week6]Placing Parentheses
- 07-20210305在WIN10下通过USB口给华为海思Hi3516DV300刷机(鸿蒙系统)
- 【python学习笔记】关于python Flask前后端分离跨域问题
- 基于Levy飞行和FDB的郊狼优化算法(matlab代码实现)
- [位压] 高精度加法
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——导读...
- 随着裁员浪潮滚滚而来,科技工作者的泡沫是否即将破灭?
- saber 2.7.1 maven 配置
- 第十七周 项目6.1 求出每名同学的总分和均分