通知像whatsapp或短信应用程序android

时间:2015-09-29 13:42:57

标签: android notifications dialog whatsapp crouton

我想创建一个通知视图,就像whatsapp或短信通知一样。我怎样才能实现。

enter image description here

到目前为止我一直在搜索

Crouton Can found here

这将在运行活动时显示一个烤面包片,在操作栏下方显示。 如果我的活动没有运行,或者我正在进行其他活动,那么如何处理。

吐司: 这看起来不像吐司。它只显示在底部或中心。

对话: 这可以这样做,但这会模糊应用程序。并禁用背景。我不想要这个

任何解决方案都会受到赞赏。

由于

3 个答案:

答案 0 :(得分:11)

这是一个来自android棒棒糖的抬头通知 在这里,您可以查看如何显示您可以在此处看到的通知http://developer.android.com/guide/topics/ui/notifiers/notifications.html 对于抬头,您必须将通知优先级设置为

.setPriority(Notification.PRIORITY_HIGH)

希望有所帮助

编辑11月17日

在API级别26中弃用了

Notification.PRIORITY_HIGH 。请改为使用 IMPORTANCE_HIGH

答案 1 :(得分:6)

可以通过Headsup通知完成。它是Andorid L的特色 所以这里的代码是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();
}

你可以称之为

 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context
           .NOTIFICATION_SERVICE);
    mNotificationManager.notify(NOTIFICATION_ID, createNotification(
           true));

答案 2 :(得分:3)

你在上面的图片中看到的是“抬头通知”(android 4.3之后添加的功能)

link:heads up notification

将通知的优先级设置为高,以便在屏幕头上显示 希望这有帮助