解决方案如下:
//请求权限
_requestPermission() async {
Map<Permission, PermissionStatus> statuses = await [
Permission.storage,
].request();
final info = statuses[Permission.storage].toString();
print(info);
// _toastInfo(info);
}
//保存图片
_saveScreen() async {
RenderRepaintBoundary boundary =
_globalKey.currentContext!.findRenderObject() as RenderRepaintBoundary;
// ui.Image image = await boundary.toImage();
//官方代码默认这里pixelRatio=1,将其改为window.devicePixelRatio即可
ui.Image image = await boundary.toImage(pixelRatio: ui.window.devicePixelRatio);
ByteData? byteData = await (image.toByteData(format: ui.ImageByteFormat.png)
as FutureOr<ByteData?>);
if (byteData != null) {
final result = await ImageGallerySaver.saveImage(
byteData.buffer.asUint8List(),
quality: 100,
name: "图片${i++}");
print(result);
// _toastInfo(result.toString());
CustomToast.basicToast('图片成功保存至相册');
}
}