Android-自定义Notification

Android-自定义Notification

2014年4月26日

消息栏的消息,想必各位Android发烧友很清楚知道是什么,比如我们下载了一个应用,它可能会定时推送些消息到我们的手机中,比如微信消息送达的时候,可能会在通知栏显示。本博文介绍如何自定义一个Notification,很简单的东西,这里小巫只是把它整理出来,奉上demo。

先来看看效果图:

附上源码:http://download.csdn.net/detail/wwj_748/7259815

有兴趣的朋友可以加本人创建的群,里面有丰富的学习资源哦:299402133(移动开发狂热者群)

上面就是通知栏的效果了,我们主要改的地方有大头像,小头像,标题,内容等,直接看代码:

package com.wwj.custom.notification;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
 * 自定义Notification
 *
 * @author wwj
 *
 */
public class MainActivity extends Activity implements OnClickListener {

	private Button showNotification;
	private Button showCustomNotifi;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		showNotification = (Button) findViewById(R.id.button1);
		showCustomNotifi = (Button) findViewById(R.id.button2);

		showNotification.setOnClickListener(this);
		showCustomNotifi.setOnClickListener(this);

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.button1:
			send();
			break;
		case R.id.button2:
			custom();
			break;

		default:
			break;
		}
	}

	/**
	 * 旧方法
	 */
	public void send() {
		// 1 得到通知管理器
		NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

		// 2构建通知
		Notification notification = new Notification(
				android.R.drawable.stat_notify_chat, "这是提示信息",
				System.currentTimeMillis());

		// 3设置通知的点击事件
		Intent intent = new Intent(this, MainActivity.class);
		PendingIntent contentIntent = PendingIntent.getActivity(this, 100,
				intent, 0);
		notification.setLatestEventInfo(this, "通知的标题", "通知的内容", contentIntent);

		notification.flags = Notification.FLAG_AUTO_CANCEL;// 点击通知之后自动消失

		// 4发送通知
		nm.notify(100, notification);
	}

	/**
	 * 自定义Notification 新方法
	 * 新的方法,本人在手机测试会崩溃,如果不行的话,可以继续使用旧的构建方法,毕竟高版本会兼容低版本的
	 */
	public void custom() {
		// 1 得到通知管理器
		NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		// 2 设置通知的点击事件
		Intent intent = new Intent(this, MainActivity.class);
		PendingIntent contentIntent = PendingIntent.getActivity(this, 100,
				intent, 0);
		// 3构建通知
		Notification.Builder builder = new Notification.Builder(this)
		// API 11添加的方法
				.setContentIntent(contentIntent).setSmallIcon(R.drawable.icon)
				// 设置状态栏的小标题
				.setLargeIcon(
						BitmapFactory.decodeResource(getResources(),
								R.drawable.jay))// 设置下拉列表里的图标
				.setWhen(System.currentTimeMillis()).setTicker("凤姐来啦")// 设置状态栏的显示的信息
				.setAutoCancel(true)// 设置可以清除
				.setContentTitle("通知通知") // 设置下拉列表里的标题
				.setContentText("凤姐即将光临天拓游戏,各部门做好防雷准备"); // 设置可以清除
		Notification notification = builder.build();// API 16添加创建notification的方法
		// 通知
		manager.notify(110, notification);

		// // 2构建通知
		// Notification notification2 = new Notification(R.drawable.jay, "天拓游戏",
		// System.currentTimeMillis());
		//
		// // 3设置通知的点击事件
		// Intent intent2 = new Intent(this, MainActivity.class);
		// PendingIntent contentIntent2 = PendingIntent.getActivity(this, 100,
		// intent2, 0);
		// notification2.setLatestEventInfo(this, "天拓游戏", "天拓游戏有个技术部",
		// contentIntent2);
		//
		// notification2.flags = Notification.FLAG_AUTO_CANCEL;// 点击通知之后自动消失
		//
		// // 4发送通知
		// manager.notify(100, notification2);
	}
}

稍微提一下的是,我们都知道Android SDK版本的变迁,API也会跟着遍,每个版本的API都可能会增删改一些接口,我们在使用Android为我们开发者提供的一些方法的时候,需要注意版本之间的区别,假如我们使用高版本的API的话,可能会引起一些错误,低版本的话可能在开发中又不适用了,反正程序不崩溃是最起码的保证,至于程序的功能能实现用什么API都是可以的。

Android-自定义Notification,码迷,mamicode.com

时间: 2024-08-05 05:05:26

Android-自定义Notification的相关文章

Android自定义Notification并没有那么简单

背景 最近需要实现一个自定义Notification的功能.网上找了找代码,解决方案就是通过RemoteViews来实现.但是在实现过程中遇到不少问题,网上也没有很好的文章描述这些问题,所以在这里做个总结,希望大家能少走点弯路. 实现 RemoteViews 自定义View 这是最基础的知识点,虽然做过自定义通知的应该都清楚,但我觉得还是有必要带一下.它主要被用于AppWidget和Notification,它描述一个在其它进程中显示的View.以下是例子代码.从中我们可以看到RemoteVie

Android自定义通知布局Notification,点击Notification导航切换回原Activity

一个简单的应用场景:假如用户打开Activity以后,按Home键,此时Activity 进入-> onPause() -> onStop() 不可见.代码在此时机发送一个Notification到通知栏.当用户点击通知栏的Notification后,又重新onRestart() -> onStart() -> onResume() 切换回原Activity. package zhangphil.pendingintent; import android.os.Bundle; im

Android -- 系统和自定义Notification

Notification是一种让你的应用程序在不使用Activity的情况下警示用户,Notification是看不见的程序组件警示用户有需要注意的事件发生的最好途径. 作为UI部分,Notification对移动设备来说是最适合不过的了.用户可能随时都带着手机在身边.一般来说,用户会在后台打开几个程序,但不会注意它们.在这样的情形下,当发生需要注意的事件时,能够通知用户是很重要的. Notification由NotificationManger统一管理,目前包含的能力有: 创建一个状态条图标.

Android通知Notification详解

Notification的使用大体步骤 Notification简介 PendingIntent简介 使用RemoteViews自定义Notification 更新与移除通知 设定提示响应 附录 Notification的使用大体步骤: 1. 获取状态通知栏管理 2. 实例化通知栏构造器 3. 设置NotificationCompat.Builder 4. 设置PendingIntent 5. 显示 因为Android的快速发展,而Android的版本也快速的升级导致了一些兼容性的问题.对于No

Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知.它是位于顶层可以展开的通知列表.它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等. (网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头,随便当作回顾笔记.下面我就通过官方文档.源代码

Android之Notification的多种用法(转)

我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在不断升级的,有关Notification的用法也就有很多种,有的方法已经被android抛弃了,现在我实现了三种不同的方法,并适应不同的android版本.现在我就把代码公布出来,我喜欢把解释写在代码中,在这里我就不多说了,先看效果图: package net.loong

Android 通知栏Notification详解

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知.它是位于顶层可以展开的通知列表.它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等. (网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头,随便当作回顾笔记.下面我就通过官方文档.源代码

Android之 Notification 的多种用法--带你了解通知栏的用法

我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在不断升级的,有关Notification的用法也就有很多种,有的方法已经被android抛弃了,现在我实现了三种不同的方法,并适应不同的android版本.现在我就把代码公布出来,我喜欢把解释写在代码中,在这里我就不多说了,先看效果图: 主要的代码如下: package

Android之Notification的多种用法

[置顶] Android之Notification的多种用法 标签: notification 2013-12-27 18:18 59635人阅读 评论(16) 收藏 举报  分类: android编程笔记(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的. 我们也知道Android系统也是在

Android通知栏Notification的整合 全面学习

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知.它是位于顶层可以展开的通知列表.它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等. (网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头,随便当作回顾笔记.下面我就通过官方文档.源代码