Crear notificación personalizada, android

Resuelto Reza_Rg asked hace 54 años • 2 respuestas

Quiero crear una notificación similar a la notificación con borde rojo en esta imagen:

ingrese la descripción de la imagen aquí

Sé cómo crear notificaciones normales como las notificaciones con borde azul en esta imagen, pero quiero mostrar un ícono y aproximadamente 3 líneas de información cerca de él. ¿Cómo puedo hacer eso? Cualquier sugerencia será apreciada.

Reza_Rg avatar Jan 01 '70 08:01 Reza_Rg
Aceptado

Agregar RemoteViewsnotificación. Aquí hay una muestra:

ingrese la descripción de la imagen aquí

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> 

Mira este artículo , hay más estilos disponibles.

Desarrollador de Android

Editado:

NotificationCompat.Builder es la forma más sencilla de crear notificaciones en todas las versiones de Android. Incluso puedes utilizar funciones que están disponibles con Android 4.1. Si su aplicación se ejecuta en dispositivos con Android >=4.1, se utilizarán las nuevas funciones; si se ejecuta en Android <4.1, la notificación será una simple notificación antigua.

para < 11 API use http://www.framentos.com/en/android-tutorial/2012/02/20/how-to-create-a-custom-notification-on-android/

Dhaval Parmar avatar Apr 23 '2013 11:04 Dhaval Parmar

Las notificaciones ampliadas están disponibles desde Android 4.1 en adelante para manejar estos escenarios. Si está utilizando Notification.Buildero NotificationCompat.Builder, deberá configurar una notificación normal Buildery otra separada Builderpara la notificación ampliada, utilizando NotificationCompat.InboxStyleo uno de los otros estilos, y conectar los dos.

CommonsWare avatar Apr 23 '2013 11:04 CommonsWare