Why customize notification
android 自带的通知控件一般不符合公司要求,所以需要自定义notification。
how to customize
自定义时需要使用 RemoteViews
NotificationCompat. Builder notificationBuilder = new NotificationCompat. Builder ( MainActivity. this , "TestMess" ) ;
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. 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 ( context. getPackageName ( ) ) ;