2

Мне нужно показать уведомление в приложении для Android.Как показать значок и текст в содержании уведомлений Текст в 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» как название и под ним, он показывает «Фото».

Но вместо того, чтобы показывать только строку «фото», я хочу показать значок камеры + строку «фото». Я не нашел способа показать значок камеры в API setContentText(). Пожалуйста, помогите, как достичь этого. Нужно ли создавать пользовательский макет или любой по умолчанию подход будет работать.

Вот изображение, чтобы сделать тот вопрос более ясно:

enter image description here

я пытался использовать 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; 
    } 
+1

создать пользовательский макет для уведомления –

+0

Я предлагаю вам дать PugNotification выстрел (http://www.halysongoncalves.com/Pugnotification/) –

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^