The background color of the android custom notification message setting does not take effect, causing some models to display white fonts and white text, which users think is not displayed

Why customize notification

android 自带的通知控件一般不符合公司要求,所以需要自定义notification。

how to customize

自定义时需要使用 RemoteViews
  NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(MainActivity.this, "TestMess"); 
  // 一定要设置小图标  .setSmallIcon(R.mipmap.ic_launcher_round) 否则会崩溃
  Notification notification = notificationBuilder
                .setSmallIcon(R.mipmap.ic_launcher_round)   
                .setAutoCancel(true).build();
  RemoteViews views =
                new RemoteViews(context.getPackageName(), R.layout.notification_layout);
        notification.contentView = views;
        notification.contentView.setViewVisibility(R.id.ll_review, View.VISIBLE);
		// 注意要把notification 的背景隐藏,否则部分机型不生效,设置的布局文件的背景色不生效
        notification.contentView.setViewVisibility(R.id.notification_background, View.GONE);

        // 图标
        Bitmap headBitmap = BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher);
        views.setImageViewBitmap(R.id.imageview_notifi_head, headBitmap);
        // 标题
        views.setTextViewText(R.id.textview_notifi_title, "testTitle");
        // 内容
        views.setTextViewText(R.id.textview_notifi_chat_content,  "testContent");
        // 时间
        views.setTextViewText(R.id.textview_notifi_time, "testTime");

easy to ignore

注意要把notification 的背景隐藏,否则部分机型不生效,设置的布局文件的背景色不生效
notification.contentView.setViewVisibility(R.id.notification_background, View.GONE);
将 notification_layout.xml 布局文件中  在对应的 view 上设置颜色值和大小

8.0 Notifications do not display

android 8.0 以后对通知栏有了渠道的概念,同一个渠道会自动折叠。但需要适配否则不显示
 //  notificationBuilder.setChannelId(String channelId); 一般使用 packageName 可以保证唯一性
 notificationBuilder.setChannelId(context.getPackageName());

Guess you like

Origin blog.csdn.net/ff_hh/article/details/89212267