普通通知
|
public void sendone(View view){
//1.先创建一个通知的管理器
NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//2.创建一个通知的builder对象来设置通知的一些相关内容
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle("紧急通知");
builder.setContentText("因为今天是伟大的节日,所以呢全部都不用上课了。。。");
builder.setSmallIcon(R.drawable.ic_launcher);//小图必须设置,否则报错
//设置一个通知的标志,响铃和振动
builder.setDefaults(NotificationCompat.DEFAULT_SOUND|NotificationCompat.DEFAULT_VIBRATE);
//设置一个跑马类的提示
builder.setTicker("大家今天要记得吃好饭。。。。");
//设置通知能不能删除
builder.setOngoing(true);
//设置通知点击完后自动取消
builder.setAutoCancel(true);
//创建一个意图对象
Intent i = new Intent();
i.setAction(Intent.ACTION_DIAL);
i.setData(Uri.parse("tel://10086"));
PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_ONE_SHOT);
builder.setContentIntent(pi); //给通知设置了一个点击事件
//通过builder对象来创建一个通知对象
Notification no = builder.build();
//3.通过通知管理器来发送通知
nm.notify(1, no);
}
|
列表通知
|
public void sendlist(View view) {
//1.先创建一个通知的管理器
NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// 2.创建通知的builder对象并设置通知的相关属性信息
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.pic3).setContentTitle("列表通知")
.setDefaults(Notification.DEFAULT_SOUND);
// 3.创建一个通知的列表样式的对象
NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
// 往列表里加数据
style.addLine("这是第一条信息");
style.addLine("这是第二条信息");
style.addLine("这是第三条信息");
style.setSummaryText("一共有3条数据,请过目");
// 4.把列表样式对象设置给通知的builder对象
b.setStyle(style);
// 5.通知通知管理器来发送通知
nm.notify(2, b.build());
}
|
大图片通知
|
public void sendBigImage(View view) {
//1.先创建一个通知的管理器
NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// 2.创建通知的builder对象并设置通知的相关属性信息
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.pic3).setContentTitle("大图片通知")
.setDefaults(Notification.DEFAULT_SOUND);
// 3.创建一个通知的大图片样式的对象
NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
//通知栏的大图
style.bigLargeIcon(BitmapFactory.decodeResource(getResources(),
R.drawable.pic7));
//显示在通知栏下面的大图
style.bigPicture(BitmapFactory.decodeResource(getResources(),
R.drawable.pic8));
style.setSummaryText("该电影主演人是英桃小玩子,大家快来看呀");
// 4.把大图片样式对象设置给通知的builder对象
b.setStyle(style);
// 5.通知通知管理器来发送通知
nm.notify(3, b.build());
}
|
进度条通知
|
//子线程和主线程都可以发送通知
public void sendProgress(View view){
//创建通知的builder对象并设置通知的相关属性信息
final NotificationCompat.Builder b = new NotificationCompat.Builder(this);
new Thread(){
public void run() {
//设置通知的相关属性信息
b.setSmallIcon(R.drawable.pic8)
.setContentTitle("下载提示")
.setContentText("小主,你需要的东西正在下载中,请耐心等待")
.setAutoCancel(true)
.setDefaults(NotificationCompat.DEFAULT_VIBRATE);
for (int i = 0; i <100; i+=5) {
//第一个参数是最大的进度,第二个参数是当前进度,第三个参数是你的进度条是不是确定的,true表示不确定,false表示确定
b.setProgress(100, i, false);
nm.notify(4, b.build()); //不停的发送通知
Log.e("progess", i+"------");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//取消发送进度的那个通知
nm.cancel(4);
//在创建一个下载完成的提醒通知
NotificationCompat.Builder b2 = new NotificationCompat.Builder(MainActivity.this);
b2.setSmallIcon(R.drawable.pic3).setContentTitle("下载完成")
.setContentText("亲,已经下载完成,请您查看")
.setDefaults(NotificationCompat.DEFAULT_SOUND);
nm.notify(5, b2.build());
};
}.start();
}
|
自定义通知
|
public void sendself(View view) {
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.ic_launcher);
b.setContentTitle("自定义通知").setTicker("请查看我自定义的通知吧")
.setDefaults(NotificationCompat.DEFAULT_SOUND);
// 创建一个remoteviews对象
RemoteViews rvs = new RemoteViews(getPackageName(),
R.layout.item_notification_layout);
rvs.setTextViewText(R.id.tvmess, "你叫什么名字?");
rvs.setTextViewText(R.id.tvmess2, "你来自哪里?");
rvs.setImageViewResource(R.id.ivimage, R.drawable.cat);
b.setContent(rvs); // 设置自定义的通知内容
// 发送通知
nm.notify(6, b.build());
}
|
自定义Toast通知
|
public void toastBySelf(View view) {
//根据布局文件转成一个布局对象
View rootView = View.inflate(this, R.layout.item_notification_layout,
(ViewGroup) findViewById(R.id.root));
TextView tv = (TextView) rootView.findViewById(R.id.tvmess);
TextView tv2 = (TextView) rootView.findViewById(R.id.tvmess2);
tv.setText("这是自定义的TOAST");
tv2.setText("请看大家的表情");
//创建Toast对象
Toast t = new Toast(getApplicationContext());
t.setGravity(Gravity.RIGHT, 0, 0);
t.setDuration(Toast.LENGTH_LONG);
t.setView(rootView);
t.show();
}
|
普通通知
|
public void sendone(View view){
//1.先创建一个通知的管理器
NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//2.创建一个通知的builder对象来设置通知的一些相关内容
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle("紧急通知");
builder.setContentText("因为今天是伟大的节日,所以呢全部都不用上课了。。。");
builder.setSmallIcon(R.drawable.ic_launcher);//小图必须设置,否则报错
//设置一个通知的标志,响铃和振动
builder.setDefaults(NotificationCompat.DEFAULT_SOUND|NotificationCompat.DEFAULT_VIBRATE);
//设置一个跑马类的提示
builder.setTicker("大家今天要记得吃好饭。。。。");
//设置通知能不能删除
builder.setOngoing(true);
//设置通知点击完后自动取消
builder.setAutoCancel(true);
//创建一个意图对象
Intent i = new Intent();
i.setAction(Intent.ACTION_DIAL);
i.setData(Uri.parse("tel://10086"));
PendingIntent pi = PendingIntent.getActivity(this, 100, i, PendingIntent.FLAG_ONE_SHOT);
builder.setContentIntent(pi); //给通知设置了一个点击事件
//通过builder对象来创建一个通知对象
Notification no = builder.build();
//3.通过通知管理器来发送通知
nm.notify(1, no);
}
|
列表通知
|
public void sendlist(View view) {
//1.先创建一个通知的管理器
NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// 2.创建通知的builder对象并设置通知的相关属性信息
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.pic3).setContentTitle("列表通知")
.setDefaults(Notification.DEFAULT_SOUND);
// 3.创建一个通知的列表样式的对象
NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
// 往列表里加数据
style.addLine("这是第一条信息");
style.addLine("这是第二条信息");
style.addLine("这是第三条信息");
style.setSummaryText("一共有3条数据,请过目");
// 4.把列表样式对象设置给通知的builder对象
b.setStyle(style);
// 5.通知通知管理器来发送通知
nm.notify(2, b.build());
}
|
大图片通知
|
public void sendBigImage(View view) {
//1.先创建一个通知的管理器
NotificationManager nm =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// 2.创建通知的builder对象并设置通知的相关属性信息
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.pic3).setContentTitle("大图片通知")
.setDefaults(Notification.DEFAULT_SOUND);
// 3.创建一个通知的大图片样式的对象
NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
//通知栏的大图
style.bigLargeIcon(BitmapFactory.decodeResource(getResources(),
R.drawable.pic7));
//显示在通知栏下面的大图
style.bigPicture(BitmapFactory.decodeResource(getResources(),
R.drawable.pic8));
style.setSummaryText("该电影主演人是英桃小玩子,大家快来看呀");
// 4.把大图片样式对象设置给通知的builder对象
b.setStyle(style);
// 5.通知通知管理器来发送通知
nm.notify(3, b.build());
}
|
进度条通知
|
//子线程和主线程都可以发送通知
public void sendProgress(View view){
//创建通知的builder对象并设置通知的相关属性信息
final NotificationCompat.Builder b = new NotificationCompat.Builder(this);
new Thread(){
public void run() {
//设置通知的相关属性信息
b.setSmallIcon(R.drawable.pic8)
.setContentTitle("下载提示")
.setContentText("小主,你需要的东西正在下载中,请耐心等待")
.setAutoCancel(true)
.setDefaults(NotificationCompat.DEFAULT_VIBRATE);
for (int i = 0; i <100; i+=5) {
//第一个参数是最大的进度,第二个参数是当前进度,第三个参数是你的进度条是不是确定的,true表示不确定,false表示确定
b.setProgress(100, i, false);
nm.notify(4, b.build()); //不停的发送通知
Log.e("progess", i+"------");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//取消发送进度的那个通知
nm.cancel(4);
//在创建一个下载完成的提醒通知
NotificationCompat.Builder b2 = new NotificationCompat.Builder(MainActivity.this);
b2.setSmallIcon(R.drawable.pic3).setContentTitle("下载完成")
.setContentText("亲,已经下载完成,请您查看")
.setDefaults(NotificationCompat.DEFAULT_SOUND);
nm.notify(5, b2.build());
};
}.start();
}
|
自定义通知
|
public void sendself(View view) {
NotificationCompat.Builder b = new NotificationCompat.Builder(this);
b.setSmallIcon(R.drawable.ic_launcher);
b.setContentTitle("自定义通知").setTicker("请查看我自定义的通知吧")
.setDefaults(NotificationCompat.DEFAULT_SOUND);
// 创建一个remoteviews对象
RemoteViews rvs = new RemoteViews(getPackageName(),
R.layout.item_notification_layout);
rvs.setTextViewText(R.id.tvmess, "你叫什么名字?");
rvs.setTextViewText(R.id.tvmess2, "你来自哪里?");
rvs.setImageViewResource(R.id.ivimage, R.drawable.cat);
b.setContent(rvs); // 设置自定义的通知内容
// 发送通知
nm.notify(6, b.build());
}
|
自定义Toast通知
|
public void toastBySelf(View view) {
//根据布局文件转成一个布局对象
View rootView = View.inflate(this, R.layout.item_notification_layout,
(ViewGroup) findViewById(R.id.root));
TextView tv = (TextView) rootView.findViewById(R.id.tvmess);
TextView tv2 = (TextView) rootView.findViewById(R.id.tvmess2);
tv.setText("这是自定义的TOAST");
tv2.setText("请看大家的表情");
//创建Toast对象
Toast t = new Toast(getApplicationContext());
t.setGravity(Gravity.RIGHT, 0, 0);
t.setDuration(Toast.LENGTH_LONG);
t.setView(rootView);
t.show();
}
|