Android使用Notification实现宽视图通知栏(二)

所属分类: 软件编程 / Android 阅读数: 34
收藏 0 赞 0 分享

Notification是在你的应用常规界面之外展示的消息。当app让系统发送一个消息的时候,消息首先以图表的形式显示在通知栏。要查看消息的详情需要进入通知抽屉(notificationdrawer)中查看。通知栏和通知抽屉(notificationdrawer)都是系统层面控制的,你可以随时查看,不限制于app。

Notification 的设计:

作为android UI中很重要的组成部分,notification拥有专属于自己的设计准则。

Notification的界面元素在通知抽屉中的notification有两种显示方式,取决于你的android版本以及notification drawer的状态:

(1)普通视图

这种风格是notification drawer的标准显示方式。

普通视图博文链接:https://www.jb51.net/article/99307.htm

(2)宽视图

指你的notification被展开的时候会显示更大的视图,这种风格是android4.1之后才有的新特性。

下面将详细介绍宽视图:

只有当notification被展开的时候这种宽视图的notification才会出现,通过手势操作可以展开一个普通的notification(部分定制系统不可以,会直接显示宽视图)。这种风格的notification从android4.1以后才开始支持。下面的截图展示了inbox风格的notification:

你应该注意到了这种notification其实跟普通的没多大差别,

唯一的区别在于数字7-详情区域。

不同宽视图notification这里的显示是有区别的,有如下几种风格:

大图标风格:详情区域显示一个最高位256dp的bitmap。

文字风格:详情区域显示一段文字

消息盒子风格(Inbox style):详情区域显示几行文字。

 下面是我们本次演示的效果图:

下面开始代码实现,这里就不赘述点击按钮的布置了,直接上java的notification实现代码:

public class MainActivity extends AppCompatActivity {
  private static final int NO_2 =0x2;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
  //按钮的点击方法
  public void show(View v){
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setSmallIcon(R.mipmap.guojia);
    builder.setContentTitle("郭嘉");//系统限制,可能不显示
    builder.setContentText("我们打袁绍吧");//系统限制,可能不显示
    builder.setDefaults(Notification.DEFAULT_ALL);
    //添加宽视图
    NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
    style.setBigContentTitle("十胜十败");
    //由手机屏幕像素决定显示多少
    style.addLine("第一是道胜");
    style.addLine("第二是义胜");
    style.addLine("第三是治胜");
    style.addLine("第四是度胜");
    style.addLine("第五是谋胜");
    style.addLine("第六是德胜");
    style.addLine("第七是仁胜");
    style.addLine("第八是明胜");
    style.addLine("第九是文胜");
    style.addLine("第十是武胜");
    style.setSummaryText("作者:郭嘉");//添加概要
    builder.setStyle(style);
    Notification n = builder.build();
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(NO_2, n);
  }
}

今天就这样,简单演示了notification的宽视图的实现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

android byte[] 和short[]转换的方法代码

这篇文章主要介绍了android byte[] 和short[]转换的方法代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android获取应用程序大小的方法

这篇文章主要介绍了Android获取应用程序大小的方法,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android获取其他包的Context实例代码

这篇文章主要介绍了Android获取其他包的Context实例代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android放大镜的实现代码

这篇文章主要介绍了Android放大镜的实现代码,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android 读取Properties配置文件的小例子

这篇文章主要介绍了Android 读取Properties配置文件的小例子,有需要的朋友可以参考一下
收藏 0 赞 0 分享

Android通讯录开发之删除功能的实现方法

这篇文章主要介绍了Android通讯录开发之删除功能的实现方法,有需要的朋友可以参考一下
收藏 0 赞 0 分享

使用ViewPager实现android软件使用向导功能实现步骤

现在的大部分android软件,都是使用说明,就是第一次使用该软件时,会出现向导,可以左右滑动,然后就进入应用的主界面了,下面我们就实现这个功能
收藏 0 赞 0 分享

android在异步任务中关闭Cursor的代码方法

android在异步任务中如何关闭Cursor?在我们开发应用的时候,很多时候会遇到这种问题,下面我们就看看代码如何实现
收藏 0 赞 0 分享

Android自定义桌面功能代码实现

android自定义桌面其实很简单,看一个例子就明白了
收藏 0 赞 0 分享

android将图片转换存到数据库再从数据库读取转换成图片实现代码

有时候我们想把图片存入到数据库中,尽管这不是一种明智的选择,但有时候还是不得以会用到,下面说说将图片转换成byte[]数组存入到数据库中去,并从数据库中取出来转换成图像显示出来
收藏 0 赞 0 分享
查看更多