得意犹堪夸世俗,诏黄新湿字如鸦。这篇文章主要讲述Android中使用Notification实现宽通知栏(Notification示例二)相关的知识,希望能为你提供帮助。
Notification是在你的应用常规界面之外展示的消息。当app让系统发送一个消息的时候,消息首先以图表的形式显示在通知栏。要查看消息的详情需要进入通知抽屉(notificationdrawer)中查看。通知栏和通知抽屉
(notificationdrawer)都是系统层面控制的,你可以随时查看,不限制于app。
Notification 的设计:
作为android UI中很重要的组成部分,notification拥有专属于自己的设计准则。
Notification的界面元素在通知抽屉中的notification有两种显示方式,取决于你的android版本以及notification drawer的状态:
(1)普通视图
这种风格是notification drawer的标准显示方式。
普通视图博文链接:http://www.cnblogs.com/panhouye/p/6139386.html
(2)宽视图
指你的notification被展开的时候会显示更大的视图,这种风格是android4.1之后才有的新特性。
下面将详细介绍宽视图:
只有当notification被展开的时候这种宽视图的notification才会出现,通过手势操作可以展开一个普通的notification(部分定制系统不可以,会直接显示宽视图)。这种风格的notification从android4.1以后才开始支持。下面的截图展示了inbox风格的notification:
【Android中使用Notification实现宽通知栏(Notification示例二)】
文章图片
你应该注意到了这种notification其实跟普通的没多大差别,
唯一的区别在于数字7-详情区域。
不同宽视图notification这里的显示是有区别的,有如下几种风格:
大图标风格:详情区域显示一个最高位256dp的bitmap。
文字风格:详情区域显示一段文字
消息盒子风格(Inbox style):详情区域显示几行文字。
下面是我们本次演示的效果图:
文章图片
下面开始代码实现,这里就不赘述点击按钮的布置了,直接上java的notification实现代码:
1 public class MainActivity extends AppCompatActivity { 2private static final int NO_2 =0x2; 3@Override 4protected void onCreate(Bundle savedInstanceState) { 5super.onCreate(savedInstanceState); 6setContentView(R.layout.activity_main); 7} 8//按钮的点击方法 9publicvoid show(View v){ 10NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 11builder.setSmallIcon(R.mipmap.guojia); 12builder.setContentTitle("郭嘉"); //系统限制,可能不显示 13builder.setContentText("我们打袁绍吧"); //系统限制,可能不显示 14builder.setDefaults(Notification.DEFAULT_ALL); 15//添加宽视图 16NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle(); 17style.setBigContentTitle("十胜十败"); 18//由手机屏幕像素决定显示多少 19style.addLine("第一是道胜"); 20style.addLine("第二是义胜"); 21style.addLine("第三是治胜"); 22style.addLine("第四是度胜"); 23style.addLine("第五是谋胜"); 24style.addLine("第六是德胜"); 25style.addLine("第七是仁胜"); 26style.addLine("第八是明胜"); 27style.addLine("第九是文胜"); 28style.addLine("第十是武胜"); 29style.setSummaryText("作者:郭嘉"); //添加概要 30builder.setStyle(style); 31Notification n = builder.build(); 32NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 33manager.notify(NO_2, n); 34} 35 }
今天就这样,简单演示了notification的宽视图的实现,大家睡前看看,晚安了
推荐阅读
- Glow Android 优化实践
- Android之HttpURLConnection
- AndroidPageObjectTest_Simple.java
- Android之RecyclerView入门
- android环境下的即时通讯
- Android图形系统之SurfaceSurfaceViewSurfaceHolder及SurfaceHolder.Callback之间的联系
- Android6.0动态获取权限
- AndroidPageObjectTest_TimeOutManagement.java
- AndroidStudio使用过程中遇到的bug