如何在android中创build自定义通知布局?

如何使用通知样式在android通知第一时间显示全部内容或需要去定制布局?

  • 在运行时推送通知(GCM)权限?
  • Android - FirebaseApp / Firebase - 初始化不开始
  • 是否有任何具体的理由使用Amazon SNS而不是直接百度服务
  • 如何在Android 2.1中实现Beluga或WhatsApp类似的消息传递系统
  • Firebase可扩展通知当应用程序处于后台时显示图像
  • API 26上的通知声音
  • GCM注册两个不同的工作注册ID
  • 是否有任何理由继续使用IntentService来处理GCM消息?
  • 在通知生成器上使用自定义的contentView

    要定义自定义通知布局,请首先实例化一个扩展 XML布局文件的RemoteViews对象。 然后,不要调用诸如setContentTitle()之类的方法,而是调用 setContent() 。 要在自定义通知中设置内容详细信息,请使用RemoteViews的方法设置视图的子项的值:

    在单独的文件中为通知创build一个XML布局。 您可以使用任何您希望的文件名,但必须使用扩展名.xml在您的应用程序中,使用RemoteViews方法来定义通知的图标和文本。 通过调用setContent()将这个RemoteViews对象放到NotificationCompat.Builder 。 避免在RemoteViews对象上设置Drawable背景,因为您的文本颜色可能变得不可读。

    custom_push.xml有我的自定义视图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> 

    实例化RemoteViews对象并进行设置,

     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); 

    在这里输入图像说明

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

    我猜你在找什么.setSubText() 。 您指出的flipkart通知绝对不是自定义视图。

     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(icon) .setSubText("Limited Stocks, Don't Wait!") <------- .setContentTitle("Custom Notification Title") notificationBuilder.notify(1, notificationBuilder.build()); 

    我使用BitTextStyle()在通知中添加突出显示的文本。

     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);