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

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

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

在通知生成器上使用自定义的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);