Crear notificación personalizada, android
Quiero crear una notificación similar a la notificación con borde rojo en esta imagen:
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.
Agregar RemoteViews
notificación. Aquí hay una muestra:
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/
Las notificaciones ampliadas están disponibles desde Android 4.1 en adelante para manejar estos escenarios. Si está utilizando Notification.Builder
o NotificationCompat.Builder
, deberá configurar una notificación normal Builder
y otra separada Builder
para la notificación ampliada, utilizando NotificationCompat.InboxStyle
o uno de los otros estilos, y conectar los dos.