一、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);