我需要在我的Android应用程序中显示通知。
我使用以下代码:
NotificationCompat.Builder mBuilder= new NotificationCompat.Builder(baseContext).setLargeIcon(large_icon)
.setSmallIcon(R.drawable.message_received_small_icon)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setSound(soundUri);
.setContentTitle("New Message");
.setContentText("video");
此通知显示左侧的“已接收消息”图标。在收到的消息图标右侧,显示" DHan Nexus"作为标题,在它下面,它显示"照片"。
但不是只显示"照片"字符串,我想显示相机图标+"照片"字符串。 我还没有找到任何方法在setContentText()API中显示相机图标。 请帮助如何实现这一目标。我是否需要制作自定义布局或任何默认方法都可以。
这是使问题更清晰的图像:
我尝试使用spannableString来显示图标和文本。但它看起来没有用。
CharSequence cs = getContentIcon(text);
.setContentText(cs.toString());
private CharSequence getContentIcon(String text)
{
Drawable image = ContextCompat.getDrawable(baseContext, R.drawable.camera_icon);
image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight());
// Replace blank spaces with image icon
SpannableString sb = new SpannableString(" "+text);
ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BASELINE);
sb.setSpan(imageSpan, 0, 20, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
return sb;
}
答案 0 :(得分:1)
您可以将RemoteViews
与自定义布局结合使用。
请注意,Android 7 Nougat在通知中有一些变化(我尚未潜入其中)。下面的代码是针对下面的Nougat。
// for standard notification
RemoteViews views = new RemoteViews(getPackageName(), R.layout.notification_simple);
// for expanded notification
// RemoteViews bigViews = new RemoteViews(getPackageName(), R.layout.notification_expanded);
views.setImageViewBitmap(R.id.picture, YOUR_IMAGE_BITMAP_HERE);
views.setTextViewText(R.id.text, YOUR_TEXT_HERE);
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(YOUR_NOTIFICATION_ICON)
.setCustomContentView(views);
// .setCustomBigContentView(bigViews); // if you've set it
notification = notificationBuilder.build();