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:

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

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

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

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

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

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

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

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

 1 public class MainActivity extends AppCompatActivity {
 2     private static final int NO_2 =0x2;
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7     }
 8     //按钮的点击方法
 9     public  void show(View v){
10         NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
11         builder.setSmallIcon(R.mipmap.guojia);
12         builder.setContentTitle("郭嘉");//系统限制,可能不显示
13         builder.setContentText("我们打袁绍吧");//系统限制,可能不显示
14         builder.setDefaults(Notification.DEFAULT_ALL);
15         //添加宽视图
16         NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
17         style.setBigContentTitle("十胜十败");
18         //由手机屏幕像素决定显示多少
19         style.addLine("第一是道胜");
20         style.addLine("第二是义胜");
21         style.addLine("第三是治胜");
22         style.addLine("第四是度胜");
23         style.addLine("第五是谋胜");
24         style.addLine("第六是德胜");
25         style.addLine("第七是仁胜");
26         style.addLine("第八是明胜");
27         style.addLine("第九是文胜");
28         style.addLine("第十是武胜");
29         style.setSummaryText("作者:郭嘉");//添加概要
30         builder.setStyle(style);
31         Notification n = builder.build();
32         NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
33         manager.notify(NO_2, n);
34     }
35 }

今天就这样,简单演示了notification的宽视图的实现,大家睡前看看,晚安了

时间: 2024-10-23 22:57:13

Android中使用Notification实现宽通知栏(Notification示例二)的相关文章

Android中的消息通知Toast和Notification

Android中的消息通知Toast和Notification 1.弹出通知Toast MainActivity.java 1 package com.example.toast; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.view.Gravity; 6 import android.view.Menu; 7 import android.view.View; 8 import an

Android中获取屏幕长宽的方法

package com.kale.screen; import android.annotation.SuppressLint; import android.app.Activity; import android.graphics.Point; import android.os.Bundle; import android.util.Log; import android.view.Display; public class MainActivity extends Activity {

Android图片旋转,缩放,位移,倾斜,对称完整示例(二)——Bitmap.createBitmap()和Matrix

MainActivity如下: package cc.c; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.widget.ImageView; /** * Demo描述: * 利用B

Android中使用Notification实现进度通知栏(示例三)

我们在使用APP的过程中,软件会偶尔提示我们进行版本更新,我们点击确认更新后,会在通知栏显示下载更新进度(已知长度的进度条)以及安装情况(不确定进度条),这就是我们今天要实现的功能.实现效果如下: 在代码实现功能前,我们先解释进度条的两种状态: (1)显示一个已知长度的进度条指示器(Displaying a fixed-duration progress indicator) 为了能够显示一个确定的进度条,通过调用setProgress() setProgress(max, progress,

Android中获取图片的宽和高

在Android中,我们想获取图片的宽和高应该怎么办?一.正常加载图片的方法下获取宽和高 举一个简单的例子:创建一个图片的副本 //加载原图 Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.photo3); //创建副本 //1.创建与原图一模一样大小的bitmap对象,该对象中目前是没有内容的,可以比喻为创建了和原图一样大小 //的白纸 Bitmap bmCopy = Bitmap.createBit

Android 中View的绘制机制源码分析 二

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/46842891 本篇文章接着上篇文章的内容来继续讨论View的绘制机制,上篇文章中我们主要讲解了View的measure过程,今天我们就来学习ViewGroup的measure过程,由于ViewGroup只是一个抽象类,所以我们需要以一个具体的布局来分析measure过程,正如我上篇文章说的,我打算使用LinearLayout为例讲解measure过程,如果你还没有读过上篇文章,那么建议你先

Android无布局文件下自定义通知栏notification的 icon

在开发项目一个与通知栏有关的功能时,由于自己的项目是基于插件形式的所以无法引入系统可用的布局文件,这样无法自定义布局,造成无法自定义通知栏的icon. 在网上也有一种不用布局文件更换icon的方法,但是由于Android的开放性,某些手机厂商会修改通知的源码,不是使用系统原有的布局文件方法有一定的局限性.文章如下http://blog.csdn.net/z1074971432/article/details/10446715有兴趣的朋友可以看下. 为了适配大多数的机型这里衍生出一种比较曲线救国的

Android中 广播发送 和 接受 的简单示例

AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.broadcast" android:versionCode="1" android:vers

Android种使用Notification实现通知管理以及自定义通知栏(示例四)

示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我们的通知栏仅仅是更改传来短信的数目,而不是对每条短信单独做一个通知栏用于提示. 修改通知 可以设置一条通知,当然可以更新一条通知,我们通过在调用NotificationManager.notify(ID, notification)时所使用的ID来更新它.为了更新你之前发布的通知,你需要更新或者创建