```java
String CHANNEL_ID = "channelId"; // 定义一个通知渠道的ID
String name = "channel"; // 定义通知渠道的名称
// 创建一个大图样式的通知
Notification.BigPictureStyle bigPictureStyle = new Notification.BigPictureStyle()
.setBigContentTitle("Big picture style notification ~ Expand title") // 设置展开时的标题
.setSummaryText("Demo for big picture style notification ! ~ Expand summery") // 设置展开时的摘要
.bigPicture(BitmapFactory.decodeResource(this.getResources(),R.drawable.beijin2)); // 设置展开时的大图
Notification notification = null; // 定义通知对象
// 如果当前Android版本大于等于Android O
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// 创建通知对象
notification = new Notification.Builder(this,CHANNEL_ID)
.setContentTitle("测试通知标题") // 设置通知标题
.setContentText("测试通知文本") // 设置通知文本
.setWhen(System.currentTimeMillis()) // 设置通知时间
.setSmallIcon(R.drawable.ic_launcher_foreground) // 设置小图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher_foreground)) // 设置大图标
.setStyle(bigPictureStyle) // 设置通知样式为大图样式
.build(); // 构建通知对象
}
NotificationManager notificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE); // 获取系统的通知管理器
NotificationChannel channel = null; // 定义通知渠道对象
// 如果当前Android版本大于等于Android O
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
channel = new NotificationChannel(CHANNEL_ID,"测试渠道名称", NotificationManager.IMPORTANCE_DEFAULT); // 创建通知渠道对象
}
// 如果当前Android版本大于等于Android O
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationManager.createNotificationChannel(channel); // 创建通知渠道
}
Button notificationButton = findViewById(R.id.notificationButton); // 获取按钮控件
Notification finalNotification = notification; // 定义最终发送的通知对象
// 设置按钮点击事件
notificationButton.setOnClickListener(view -> {
notificationManager.notify(1, finalNotification); // 发送通知
});
```
代码的主要功能是创建并发送一个大图样式的通知。首先,定义了一个通知渠道的ID和名称。然后,创建了一个大图样式的通知对象,设置了展开时的标题、摘要和大图。之后,判断当前Android版本是否大于等于Android O,如果是,则创建一个通知对象,设置通知的标题、文本、时间、小图标、大图标和样式。接着,获取系统的通知管理器,创建一个通知渠道对象,并将通知渠道添加到通知管理器中。最后,设置按钮的点击事件,在点击时发送通知。
如果要设置长文本则需要这样写
Notification.BigTextStyle bigTextStyle =new Notification.BigTextStyle()
.setBigContentTitle("系统测试")
.setSummaryText("长文本")
.bigText("11111111111111111111111111111111111111111111111111111111");