创建一个小部件并在 Flutter 应用程序未运行时将其捕获为图像

问题描述 投票:0回答:1

在我的 flutter 应用程序中,我们有一个用例,我需要生成特定小部件(屏幕上的一部分)的屏幕截图并将其保存为图像。

我已经看到有

screenshot
包和其他一些包可以用来实现这一点 当用户正在积极使用该应用程序时

但是,要求是我想在应用程序运行时进行此操作

  1. 不运行
  2. 在后台
  3. 正在运行,但特定功能未开放

所以,我必须创建小部件,并在非 ui 环境中捕获屏幕截图;有可能实现吗?怎么办?

flutter
1个回答
0
投票

要利用 Flutter 中的

screenshot
包来捕获屏幕截图,请按照以下步骤操作:

  • 将包导入到您的
    pubspec.yaml
    文件中:
dependencies:
  screenshot: ^2.1.0
  • 在 Dart 文件中导入必要的包:
import 'package:screenshot/screenshot.dart';
  • 创建
    ScreenshotController
    的实例:
ScreenshotController screenshotController = ScreenshotController();
  • 使用此方法将 Widget 捕获为图像:
screenshotController.captureFromWidget(
  InheritedTheme.captureAll(
    context,
    Material(
      child: YourWidgetHere(),
    ),
  ),
  delay: const Duration(seconds: 1),
).then((capturedImage) {
  // Do something with the captured image, like sharing it on social media
  shareContentOnSocialMedia(capturedImage);
});

我在我的实时应用程序中使用此代码,并且它在更新的 Flutter 版本中运行良好。

© www.soinside.com 2019 - 2024. All rights reserved.