Como criar um Layout de notificação personalizado no android?

Como mostrar o conteúdo completo na notificação em tempo de frist no android com o uso do estilo de notificação ou necessidade de ir para o layout personalizado??

Author: Community, 2017-01-27

4 answers

Use um costume contentView no seu construtor de notificações

Para definir uma disposição de notificação personalizada, comece por instanciar um O objecto RemoteViews que inflaciona um ficheiro de layout XML. Então, em vez de métodos de chamada como setContentTitle (), call setContent(). Definir detalhes de conteúdo na notificação personalizada, use os métodos em RemoteViews para definir os valores das crianças da vista:

Crie uma disposição XML para a notificação em separado arquivo. Você pode usar qualquer nome de arquivo que desejar, mas você deve usar a extensão .xml Na sua aplicação, use os métodos RemoteViews para definir os ícones e o texto da sua notificação. Coloque este objeto no seu NotificationCompat.Builder chamandosetContent () . Evitar definir a fundo desenhável no seu objecto RemoteViews, porque o seu texto a cor pode tornar-se ilegível.

personal_push.o xml tem as minhas vistas personalizadas R. id. image, R. id. text, R. id. title

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:layout_width="fill_parent"
    android:layout_height="64dp"
    android:padding="10dp" >
    <ImageView
        android:src="@mipmap/ic_launcher"
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="10dp" />
    <TextView
        android:textSize="13dp"
        android:textColor="#000"
        android:text="Testing"
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        />
    <TextView
        android:textSize="13dp"
        android:textColor="#000"
        android:text="Testing is awecome"
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_below="@id/title"
         />
</RelativeLayout>

Instanciando um RemoteViews object and set it,

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_push);
contentView.setImageViewResource(R.id.image, R.mipmap.ic_launcher);
contentView.setTextViewText(R.id.title, "Custom notification");
contentView.setTextViewText(R.id.text, "This is a custom layout");

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setContent(contentView);

Notification notification = mBuilder.build();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationManager.notify(1, notification);

enter image description here

Verifique : https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ApplyStyle

 53
Author: Charuක, 2017-01-27 08:37:01

Usei o BitTextStyle () para adicionar o texto seleccionado na notificação.

return new NotificationCompat.Builder(context)
       .setSmallIcon(R.drawable.ic_mono)
       .setContentTitle(title)
       .setContentText(message)
       .setLargeIcon(icon)
       .setColor(ContextCompat.getColor(context, R.color.notification_color))
       .setStyle(new NotificationCompat.BigTextStyle().bigText(title))
       .setStyle(new NotificationCompat.BigTextStyle().bigText(message).setSummaryText("#hashtag"))
       .setShowWhen(true)
       .setAutoCancel(true);
 4
Author: khaleel_jageer, 2017-01-29 01:28:30
Acho que o que procuras é ... A notificação flipkart que você apontou definitivamente não é uma vista personalizada.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                        .setSmallIcon(icon)
                        .setSubText("Limited Stocks, Don't Wait!") <-------
                        .setContentTitle("Custom Notification Title")
notificationBuilder.notify(1, notificationBuilder.build());
 3
Author: Sanket Berde, 2017-01-27 07:35:15

Nova Notificação.O construtor (isto) está desacreditado . Por isso, temos de o substituir por New NotificationCompat.Construtor (isto, "channelId");

 0
Author: saneesh, 2018-06-14 11:17:03