it-swarm.com.de

Erstelle eine benutzerdefinierte Benachrichtigung, android

Ich möchte eine Benachrichtigung erstellen, die der rot umrandeten Benachrichtigung in diesem Bild entspricht:

enter image description here

Ich kann normale Benachrichtigungen wie die blau umrandeten Benachrichtigungen in diesem Bild erstellen, möchte jedoch ein Symbol und ungefähr 3 Informationszeilen in der Nähe anzeigen. Wie kann ich das machen? Jeder Vorschlag wird geschätzt.

20
Reza_Rg

RemoteViews zur Benachrichtigung hinzufügen. Hier ist ein Beispiel:

enter image description here

var remoteViews = new RemoteViews(getPackageName(), R.layout.widget);
var mBuilder = new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_launcher)
    .setContent(remoteViews);

// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(this, test.class);

// The stack builder object will contain an artificial back stack for
// the started Activity.
// This ensures that navigating backward from the Activity leads out of
// your application to the Home screen.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(test.class);

// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);

PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.button1, resultPendingIntent);

var notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

// mId allows you to update the notification later on.
notificationManager.notify(100, mBuilder.build()); 

widget.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:gravity="center"
    Android:orientation="horizontal">
    <TextView
        Android:id="@+id/textView1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:gravity="center"
        Android:text="DJ notification"
        Android:textAppearance="?android:attr/textAppearanceMedium" />
    <Button
        Android:id="@+id/button1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Close Me" />
</LinearLayout> 

check this article es gibt mehr style avaialbe

Android-Entwickler

Bearbeitet:

Der NotificationCompat.Builder ist die einfachste Methode zum Erstellen von Benachrichtigungen für alle Android Versionen. Sie können sogar Funktionen verwenden, die mit Android 4.1. Wenn Ihre App auf Geräten mit Android> = 4.1 ausgeführt wird, werden die neuen Funktionen verwendet, wenn die Benachrichtigung mit Android <4.1 ausgeführt wird wird eine einfache alte Benachrichtigung sein.

verwenden Sie für APIs <11 http://www.framentos.com/de/Android-tutorial/2012/02/20/how-to-create-a-custom-notification-on-Android/

47
Dhaval Parmar

Erweiterte Benachrichtigungen sind ab Android 4.1) verfügbar, um diese Szenarien zu bewältigen. Wenn Sie Notification.Builder Oder NotificationCompat.Builder Verwenden, würden Sie festlegen Erstellen Sie ein normales Builder und ein separates Builder für die erweiterte Benachrichtigung, indem Sie NotificationCompat.InboxStyle oder einen der anderen Stile verwenden, und verbinden Sie die beiden.

7
CommonsWare