Flutter推送通知开发中如何将Bitmap转换为要求的AndroidBitmap?
类型不匹配问题解决方案
flutter_local_notifications较新版本对安卓通知图标做了类型拆分,AndroidNotificationDetails的largeIcon参数要求接收AndroidBitmap类型实例,你可以通过以下两种方式解决问题:
- 方式一:直接调用
AndroidBitmap的内置方法加载网络图片,不需要额外生成Bitmap对象
// 直接通过AndroidBitmap加载网络图片 AndroidBitmap largeIcon = await AndroidBitmap.fromProvider(NetworkImage("http://pudim.com.br/pudim.jpg")); var androidSpecifics = AndroidNotificationDetails( notificationData['id'].toString(), 'Crop2x Notifications', 'Crop2x Channel Description', importance: Importance.max, priority: Priority.high, largeIcon: largeIcon, ticker: 'ticker' );
- 方式二:如果现有逻辑已经生成了
Bitmap对象,可以通过字节流转换为AndroidBitmap
Bitmap bitmap = await Bitmap.fromProvider(NetworkImage("http://pudim.com.br/pudim.jpg")); // 先将Bitmap转换为字节数组 Uint8List bitmapBytes = await bitmap.toUint8List(); // 用字节数组构造AndroidBitmap实例 AndroidBitmap largeIcon = AndroidBitmap.fromUint8List(bitmapBytes);
注意事项:
安卓通知图标需要符合系统设计规范,建议使用透明背景的适配尺寸图片,避免出现图标裁切、显示异常的问题;如果加载失败可先检查安卓清单文件是否已经配置网络权限。
内容的提问来源于stack exchange,提问作者Ibrahim Rehman
相关产品推荐
相关产品推荐

