5

I want to create a Notification view just like whatsapp or sms notification.How can i achieve that.

enter image description here

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

shailesh
  • 1,783
  • 2
  • 17
  • 26
  • 1
    What you need is a notification.(http://developer.android.com/guide/topics/ui/notifiers/notifications.html) whats app and all other apps have their own customized notification..if you are looking for a customized notification.i can help you. but I dont understand exactly what you need. – Sandeep R Sep 29 '15 at 14:10

3 Answers3

12

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 (NotificationManager.IMPORTANCE_HIGH) instead.

Ali Ahmed
  • 2,130
  • 1
  • 13
  • 19
Pavan
  • 5,016
  • 1
  • 26
  • 30
  • If you see the screen shot, I have not pull my notification tray. this is happening like 1. Message come Crouton shows then it appears on notification icon on status bar. – shailesh Sep 30 '15 at 05:53
  • yes it is headsup notification. I will add code as answer. thanks – shailesh Sep 30 '15 at 06:50
  • Now `Notification.PRIORITY_MAX` is Deprecated. – pRaNaY Nov 01 '17 at 08:36
  • Use `NotificationCompat.PRIORITY_HIGH` or `NotificationCompat.PRIORITY_MAX` instead while using notificaion with `NotificationCompat.Builder` – pRaNaY Nov 01 '17 at 09:34
6

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));
shailesh
  • 1,783
  • 2
  • 17
  • 26
  • i have a doubt, if the application is closed will i get the notification..? –  Jan 13 '17 at 06:06
  • @Vishal why not it will, It is a how the notification populate on screen from API 21 and further. – shailesh Jan 16 '17 at 13:28
0

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

ajinkya gaurkar
  • 197
  • 1
  • 14