android 通知条效果
来源:互联网 发布:白鹤翔网络架构师 编辑:程序博客网 时间:2024/06/11 04:00
1.0 官方
在 android 在5.0中加入个通知新样式 Heads-Up.
google 介绍界面,需要翻墙
在 Android 5.0的使用的方法的代码:
notification=new NotificationCompat.Builder(MainActivity.this) .setVisibility(Notification.VISIBILITY_PUBLIC) .setSmallIcon(R.drawable.ic_launcher) .setFullScreenIntent(pendingIntent, false) .setContentTitle("这是标题") .setContentText("这是内容") .addAction(R.drawable.ic_launcher, "菜单1", peddingIntent1) .build(); notificationManager.notify(1, notification);
其中 Builder.setFullScreenIntent(pendingIntent, false)
是关键;setUsesChronometer (boolean )
设置这个为 true 以后 heads-up会将 action 也显示出来.
2.0 使用库实现类似的方法(向下兼容2.3)
下面介绍一个自己写的,类似 Heads-up 组件的库.
github 源码地址
simple heads-up (no expand)
使用方法:
HeadsUpManager manage = HeadsUpManager.getInstant(getApplication()); HeadsUp.Builder builder = new HeadsUp.Builder(MainActivity.this); builder.setContentTitle("提醒").setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS) //要显示通知栏通知,这个一定要设置 .setSmallIcon(R.drawable.icon) //2.3 一定要设置这个参数,否则会报错 .setContentIntent(pendingIntent) .setContentText("你有新的消息"); HeadsUp headsUp = builder.buildHeadUp(); manage.notify(code++, headsUp);
simple heads-up
使用方法:
HeadsUpManager manage = HeadsUpManager.getInstant(getApplication()); HeadsUp.Builder builder = new HeadsUp.Builder(MainActivity.this); builder.setContentTitle("提醒").setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS) //要显示通知栏通知,这个一定要设置 .setSmallIcon(R.drawable.icon) .setContentText("你有新的消息") //2.3 一定要设置这个参数,否则会报错 .setContentIntent(pendingIntent) //设置是否显示 action 按键 .setUsesChronometer(true) .addAction(R.drawable.ic_cloud_queue_black_24dp, "查看", pendingIntent); HeadsUp headsUp = builder.buildHeadUp(); manage.notify(code++, headsUp);
使用自定义布局,支持 button 的点击事件.
使用方法:
final HeadsUpManager manage1 = HeadsUpManager.getInstant(getApplication()); View view=getLayoutInflater().inflate(R.layout.custom_notification, null); view.findViewById(R.id.openSource).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/zzz40500/HeadsUp")); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MainActivity.this.startActivity(intent); manage1.cancel(); } }); HeadsUp headsUp1 = new HeadsUp.Builder(MainActivity.this) .setContentTitle("标题") //要显示通知栏通知,这个一定要设置 .setSmallIcon(R.drawable.icon) //2.3 一定要设置这个参数,否则会报错 .setContentIntent(pendingIntent) .setContentText("这个是自定义通知") .buildHeadUp(); headsUp1.setCustomView(view); manage1.notify(code++, headsUp1);
![heads-up.gif](http://upload-images.jianshu.io/upload_images/166866-543a5d26ab71d0f6.gif?imageView2/2/w/1240/q/100)
heads-up.gif
局限性:
heads-up 没有加入阴影效果:- 没有对消息进行优先级排序,现在的排序算法是先进先出.
- miui 系统开启悬浮窗才可以正常使用. (miui 真讨厌!!!!)
1.0.1更新内容;
增加了背景阴影部分.
- 增加了消息横向滑动时候的 alpha 值的改变
- 增加了常驻消息:调用
HeadsUp.setSticky(true)
,用HeadsUpManager.cancel(code)
取消.- 修改了滑动动画.
- 向下兼容2.3
1.1.0更新内容;
- 增加了圆形头像,基于CircleImageView上做的修改
- 增加在 android 5.0 上使用原生的 headsUp.
增加了方法setActivateStatusBar(boolean )
默认 true ,设置 false 表示只显示 heads-up ,而不会发送到通知栏上.
1.1.0注意:
*使用原生的 headsUp 逻辑是:
系统是大于21,且headsUp 没有使用setCustomView(View )
也没有设置setIsActivateStatusBar(true)
则使用原生的 heads-up
如果要调用了原生的 heads-up,所以你得设置setFullScreenIntent(pendding,false)
pendding不能为空,否则没有效果
0 0
- android 通知条效果
- Android仿淘宝头条基于TextView实现上下滚动通知效果
- Android Notification --- 多条通知
- android滚动通知的效果
- Android 实现应用通知效果
- android 同时发送几条通知
- Android 通知栏进度更新条
- android 应用内通知,仿通知栏通知效果,通知Toast,悬浮窗
- android自定义通知栏的效果音
- android 通知栏添加按钮点击效果
- 实现Android通知栏进度条效果
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)
- Android抽屉(SlidingDrawer --类似android通知栏下拉效果)
- Android中为通知栏添加滚动条
- Android - 隐藏最顶端的通知条(Top Notification Bar)
- android tv 实现颜色条滚动效果
- Android ViewPager实现广告条效果
- Android新闻客户端水平导航条效果
- HDOJ 1032(POJ 1207) The 3n + 1 problem
- Linux(例如CentOS 7)打开TCP 22端口,基于SSH协议
- 【凯子哥带你学Framework】Activity启动过程全解析
- 精选30道Java笔试题解答
- C++标准类型库string
- android 通知条效果
- android短信接收处理和发送
- 软件系统性能的关注点有哪些?
- WIFI项目--Android Studio的.gitignore以及使用git提交拉取代码
- l&inux必学指令&
- 从0开始<十一>:简单计算器实现
- 数据结构_不带头结点的链表逆制
- DES和RSA加密数据传输信息Java实现
- 引入js文件不起效果总结