Notification通知和自定义Toast
1.普通通知
效果图:
代码如下
// An highlighted block
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void normal_notifiaction(){
NotificationManager manager= (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher_background);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
builder.setTicker("我是提示信息");
builder.setContentInfo("我是附加信息");
builder.setAutoCancel(true);//点击后自动消失
builder.setDefaults(Notification.DEFAULT_ALL);
manager.notify(1,builder.build());
}
2.自定义通知框
效果图:
代码如下
// An highlighted block
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void customer_notifiaction(){
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_customer);
remoteViews.setTextViewText(R.id.texttwo,"杨智斌");
remoteViews.setImageViewResource(R.id.imageone,R.drawable.ic_launcher_background);
builder.setContent(remoteViews);
manager.notify(2,builder.build());
}
3.列表通知框
效果图:
代码如下
// An highlighted block
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void list_notifiacyion(){
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
Notification.InboxStyle inboxStyle = new Notification.InboxStyle();
inboxStyle.addLine("大家好!呦呦呦");
inboxStyle.addLine("大家好!呦呦呦");
inboxStyle.addLine("大家好!呦呦呦");
builder.setStyle(inboxStyle);
manager.notify(3,builder.build());
}
4.大视图通知框
效果图:
代码如下
// An highlighted block
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void big_notifiavtion(){
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.sousuo);
builder.setContentTitle("我是标题");
builder.setContentText("我是内容");
Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle();
bigPictureStyle.bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap._101));
builder.setStyle(bigPictureStyle);
manager.notify(4,builder.build());
}
5.进度条通知框加跳转页面
效果图
(悬停)
代码如下
// An highlighted block
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void progress_notification(){
final NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
final Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentTitle("我是标题");
builder.setProgress(100,0,false);
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
int progress;
@Override
public void run() {
builder.setContentText("正在下载,当前进度为"+progress);
builder.setProgress(100,progress,false);
progress+=20;
manager.notify(5,builder.build());
if (progress == 100){
builder.setContentText("正在安装");
builder.setProgress(0,0,true);
manager.notify(5,builder.build());
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
manager.cancel(5);
timer.cancel();
}
}
},0,1000);
Notification build = builder.build();
Intent intent = new Intent(this,MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,100,intent,PendingIntent.FLAG_ONE_SHOT);
builder.setContentIntent(pendingIntent);
// build.contentIntent = pendingIntent;
//悬停
builder.setFullScreenIntent(pendingIntent,true);
manager.notify(5,build);
}