问题
I want to create a Notification view just like whatsapp or sms notification.How can i achieve that.
What I have search till now
Crouton : Can found here
this will show a crouton at running activity and below to the action bar. if my activity not running or i am on the other activity how can this handle.
Toast: this is not looking like a toast. It show only on bottom or center .
Dialog: this can be done like this but this will blur the application. and disable the background. And i don't want this
Any solution will appreciated.
Thanks
回答1:
what you are looking in the image above "heads up notificcation" (feature added after android 4.3)
link :heads up notification
set priority of notification as high so as to display it on screen head hope this helps
回答2:
it's a headsup notification works from android lollipop here you check how to show notification you can see here http://developer.android.com/guide/topics/ui/notifiers/notifications.html and for headsup you have to set notification priority as below
.setPriority(Notification.PRIORITY_HIGH)
hope it helps
EDIT Nov-17
Notification.PRIORITY_HIGH was deprecated in API level 26. use IMPORTANCE_HIGH instead.
回答3:
It can be done via Headsup notification. It is feature of Andorid L so by code here is demo
Notification createNotification(boolean makeHeadsUpNotification) {
Notification.Builder notificationBuilder = new Notification.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setPriority(Notification.PRIORITY_DEFAULT)
.setContentTitle("Sample Notification")
.setContentText("This is a normal notification.");
if(Build.VERSION.SDK_INT> Build.VERSION_CODES.KITKAT)
{
notificationBuilder.setCategory(Notification.CATEGORY_MESSAGE);
}
if (makeHeadsUpNotification) {
Intent push = new Intent();
push.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
push.setClass(this, IndexActivity.class);
PendingIntent fullScreenPendingIntent = PendingIntent.getActivity(this, 0,
push, PendingIntent.FLAG_CANCEL_CURRENT);
notificationBuilder
.setContentText("Heads-Up Notification on Android L or above.")
.setFullScreenIntent(fullScreenPendingIntent, true);
}
return notificationBuilder.build();
}
you can call it like
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context
.NOTIFICATION_SERVICE);
mNotificationManager.notify(NOTIFICATION_ID, createNotification(
true));
来源:https://stackoverflow.com/questions/32845583/notification-like-whatsapp-or-sms-app-android