您的位置:首页 > 移动开发 > Android开发

android通知栏通知的开发笔记

2015-01-16 09:02 323 查看
一、ToastNotifications(自定义吐司)

(1) 先自定义一个xml布局,xml布局里可以有imageview图片,textview文本等。

(2) 在activity中用inflater获取布局,实例化imageview和textview。

View view= getLayoutInflater().inflate(R.layout.toast,

(ViewGroup)findViewById(R.id.toast_layout));

view.setAlpha(100);

ImageView img = (ImageView)view.findViewById(R.id.imgview);

img.setImageResource(R.drawable.ic_launcher);

TextView textView =(TextView) view.findViewById(R.id.textview);

textView.setText("自定义吐司");

(3) 实例化一个Toast对象

Toast toast = new Toast(MainActivity.this);

(4) toast.setDuration(Toast.LENGTH_LONG);//设置时间

toast.setGravity(Gravity.BOTTOM, 10, 50);//设置位置

toast.setView(view);

toast.show();

二、StatusNotifications(通知栏通知)

Activity, service ,BroadcastReceiver都可以触发一个通知,通过Intent可以触发

有声音、震动、闪光灯等效果提示通知

1、 默认通知栏通知

(1) 先创建一个通知的管理类

manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);//创建一个通知的管理类

(2) 创建一个通知的对象Notification,新版本用Builder创建

private Notification.Builderbuilder = new Notification.Builder(this);

(3) Intent intent = newIntent(MainActivity.this, MainActivity.class);

PendingIntent contentIntent =PendingIntent.getActivity(MainActivity.this, 0, intent, 0);

builder.setContentIntent(contentIntent);

(4) builder.setContentTitle("新通知")//通知的标题

.setContentText("HellowWorld")//通知的内容

.setTicker("您收到一个通知");//第一次出现在状态栏的内容

builder.setSmallIcon(R.drawable.ic_launcher);//通知的小图标

builder.setDefaults(Notification.DEFAULT_ALL);//所有默认的提示

//Notification.DEFAULT_LIGHTS;默认的闪光灯

//Notification.DEFAULT_SOUND;默认的声音

//Notification.DEFAULT_VIBRATE;默认的震动

//震动需要添加一个授权

//<uses-permission android:name="android.permission.VIBRATE"/>

(5) Notificationnotification = builder.build();// 仅仅在高版本4.1中使用

manager.notify(1000,notification);// 1000(id)id为通知的唯一标示

2、 自定义通知栏通知

RemoteViews contentViews = new RemoteViews(getPackageName(),
R.layout.custom_notification);
contentViews.setImageViewResource(R.id.imgview,
R.drawable.ic_launcher);
contentViews.setTextViewText(R.id.title,
"自定义通知标题");
contentViews.setTextViewText(R.id.text,
"自定义通知内容");

Intentintent = newIntent(MainActivity.this,
MainActivity.class);
PendingIntentpendingIntent = PendingIntent.getActivity(
MainActivity.this, 0, intent, 0);
builder.setContentIntent(pendingIntent);
builder.setContent(contentViews);
Notificationnotification =
builder.build();
manager.notify(1001,notification);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: