Flutter 如何把Widget保存为一张图片

Flutter如何把Widget截取成一张图片并进行保存呢?flutter中保存Widget为图片时会用到组件RepaintBoundary和RenderRepaintBoundary。

1、首先要把保存成图片的组件用RepaintBoundary包一下,显示是把生成的SvgPicture组件放到child中进行渲染。
RepaintBoundary(
    key: _globalKey,
    child: Container(
      margin: const EdgeInsets.all(10.0),
      padding: const EdgeInsets.all(10.0),
      decoration: BoxDecoration(
          border: Border.all(color: Colors.grey, width: 0.5)),
      child: signSvg,   //signSvg是生成的SvgPicture组件
    ),
  ),
2、通过RenderRepaintBoundary进行处理
  ///生成svg,并保存成图片
  Future<void> exportSVG() async {
    final SvgPicture data = _controller.toSVG()!;

    Directory documentsDir = await getApplicationDocumentsDirectory();
    String documentPath = documentsDir.path;
    File file =
        File('$documentPath/${DateTime.now().millisecondsSinceEpoch}.png&#

猜你喜欢

转载自blog.csdn.net/xiaopihair123/article/details/128634488
今日推荐