Notification基础详解三(宽视图布局通知)
来源:互联网 发布:收割机webshell扫描器 编辑:程序博客网 时间:2024/06/07 02:50
Notification是在你的应用常规界面之外展示的消息。当app让系统发送一个消息的时候,消息首先以图表的形式显示在通知栏。要查看消息的详情需要进入通知抽屉(notificationdrawer)中查看。通知栏和通知抽屉
(notificationdrawer)都是系统层面控制的,你可以随时查看,不限制于app。
Notification 的设计:
作为Android UI中很重要的组成部分,notification拥有专属于自己的设计准则。
Notification的界面元素在通知抽屉中的notification有两种显示方式,取决于你的android版本以及notification drawer的状态:
(1)普通视图
(2)宽视图
指你的notification被展开的时候会显示更大的视图,这种风格是android4.1之后才有的新特性。
下面将详细介绍宽视图:
你应该注意到了这种notification其实跟普通的没多大差别,
1.NotificationCompat.BigPictureStyle 大图片风格:详情区域包含一个256dp高度的位图
2.NotificationCompat.BigTextStyle 大文字风格:显示一个大的文字块
1、 在上面的例子中,用到了 扩展通知样式:
从 Android4.1 开始,可以在通知视图中直接显示更加丰富的、具有交互性的信息,这就是通知的样式。
Android 默认提供了三种样式(它们都实现了 Notification.Style ):
-----> BigTextStyle:显示更多的文本信息,例如显示一条消息或者公告的全部内容。
-----> BigPictureStyle:显示全彩的大图片。
-----> InboxStyle:提供了一个条目列表,样子有点像 Gmail 等应用程序中的收件箱视图。
其中的 Notification.Style 就是一个接口,应用程序可以实现它来显示任意更加适合自己需求的自定义扩展布局。
(1)、BigTextStyle 样式的通知,它的代码如上。可以通过 Builder 的 addAction() 方法关联自定义动作。这里演示了如何将布局加入整个视图中。本例中,每个动作的响应结果是一样的,但也可以通过为每个动作都关联一个 PendingIntent,这样每个动作就可以在应用程序中有不同的响应结果了。
(2)、BigPictureStyle 样式的通知,除了使用 bigPicture() 方法传递一张要显示的全彩图外,剩下的内容几乎和 BigTextStyle 一样。
(3)、 InboxStyle 样式的通知。在 Notification.InboxStyle 样式下,可以通过 addLine() 方法向列表中添加多个条目。本例使用 setSummaryText() 方法对所有的条目进行了分类,在之前的样式中该方法也是可以使用的。如果程序运行的最低版本目标平台是 Android4.1,可以使用 Nitification.Builder 代替支持库中的 NotificationCompat。本例中,我们可以看到支持库的强大。调用了 API Level 16才有的方法,实际上是支持库在底层进行了版本检验,对于某一平台不支持的方法会忽略;不需要建立判断分支代码来使用新 API。因此,当在 Android4.0 或更早版本的设备上运行这段代码时,只会出现简单的传统通知。
2、通知的可见性和隐私性:
从 Android5.0 开始,无需下拉状态栏就可以使通知在锁定屏幕上完全显示出来,即使设备受到密码保护也是如此。其效果如下(剩余部分的效果):
其中的特性如下三个方面:
(1)、通知的可见性设置控制其在安全锁定屏幕上的默认行为,这意味着对锁定屏幕启动密码(option_secret 按钮)。对于需要简单滑动手势解锁的锁定屏幕,这些功能不会执行任何操作。
系统提供了 3 个通知可见性选项:
-----> VISIBILITY_PRIVATE:通知的编辑版本,仅包含应用程序标题和图标,在设备解锁时可见。这是默认的可见性设置。
-----> VISIBILITY_PUBLIC:无论设置是解锁还是锁定,都会显示完整的通知。
-----> VISIBILITY_SECRET:此通知将在锁定屏幕上完全隐藏。用户必须解锁设备才能看到此通知的存在。
点击相应的按钮后得到的效果如下:
注:本例使用的是第三个选项,但是无论是调整最低的 Android 版本为4.0.3 还是 5.1,或者把跟着把最高版本从 6.0 调整到 5.1 都没有实现 API 文档中所说的效果。
(2)、在 Android4.1 和以后的版本中,通知支持优先级设置(option_headsup 按钮)。在 Android5.0 中,该功能使我们可以在浮动显示模式下显示具有较高优先级的通知(如来电通知)。此模式会将通知与应用程序内容重叠,而不需要等待用户下拉状态栏,从而强迫用户立即回应此通知。优先级设置为 PRIORITY_HIGH 或 PRIORITY_MAX 的通知将在浮动显示模式下尽可能显示出来。效果如下:
(3)、安全通知功能(option_private 按钮),对于此模块,创建了一个基础通知,计划将其作用从包含往来账户余额的用户银行发出的警告。如果用户使设备保持安全,这就是我们应该保护的敏感信息。Android 框架的默认行为将整个通知隐藏在已经编辑视图的后面,如前面的视图。但是此次采取了更友善的方式。第一个用户选项被选中是,我们构造第二个 Notification 实例并将其传递给 setPublicVersion()。这样,在设备解锁时安全地显示此消息。为解锁时则显示的第二个 Notification 中设置的消息。效果如下:
- Notification基础详解三(宽视图布局通知)
- Notification基础详解二(自定义布局通知)
- Notification基础详解一(系统基础通知)
- Android基础—Notification(状态栏通知)详解
- 通知栏消息通知详解(Notification)
- Android中使用Notification实现宽视图通知栏(Notification示例二)
- Notification详解(三)
- Notification---Android Notification通知详解
- IOS10 Notification远程推送通知(三)
- Android基础学习之Notification(通知)
- Android的通知(Notification)使用详解
- Notification(通知栏)代码详解
- Android的通知(Notification)使用详解
- Android的通知(Notification)使用详解
- Android Notification通知详解
- Android Notification通知详解
- Android Notification通知详解
- Android Notification通知详解
- Apache Shiro基础教程
- Eclipse下DEBUG当前项目直接进入空心文件
- Webpack打包简单的使用ECharts,模块化处理的简单演示
- 基础理论知识复习(上)
- 【webpack】-- 自动刷新
- Notification基础详解三(宽视图布局通知)
- ES6中的Generator函数
- Nvidia + Ubuntu/Win7
- Android效果:FrameLayout实现中间头像的Dialog
- Linux常用命令
- IPC机制--利用ContentProvider
- C#FTP类
- Android走进源码告诉你app是如何被启动的
- (M)SIM卡开机流程分析之TelephonyDevController类分析