在我的 flutter 应用程序中,我们有一个用例,我需要生成特定小部件(屏幕上的一部分)的屏幕截图并将其保存为图像。
我已经看到有
screenshot
包和其他一些包可以用来实现这一点 当用户正在积极使用该应用程序时。
但是,要求是我想在应用程序运行时进行此操作
所以,我必须创建小部件,并在非 ui 环境中捕获屏幕截图;有可能实现吗?怎么办?
要利用 Flutter 中的
screenshot
包来捕获屏幕截图,请按照以下步骤操作:
pubspec.yaml
文件中:dependencies:
screenshot: ^2.1.0
import 'package:screenshot/screenshot.dart';
ScreenshotController
的实例:ScreenshotController screenshotController = ScreenshotController();
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 版本中运行良好。