Flutter 颤栗,如何拍摄完整的截图

Flutter 颤栗,如何拍摄完整的截图,flutter,Flutter,我正试图找到一种方法来拍摄整个屏幕的截图。Flatter库只允许我制作一个小部件的屏幕截图,但我想要整个android的屏幕截图 我确实找到了这个链接: 这解决了我的问题,但我尝试使用文档中的java代码: 可悲的是,我不能运行代码,也许我犯了一些错误?我发现了一个错误,当我按照docs指令运行时,在程序运行后(不确切地说,java找不到我的电池,但代码正在编译),然后我从堆栈链接复制第一个答案,并试图将其放在“MainActivity”文件夹中,遗憾的是程序不工作,我的“旧”java代码正

我正试图找到一种方法来拍摄整个屏幕的截图。Flatter库只允许我制作一个小部件的屏幕截图,但我想要整个android的屏幕截图

我确实找到了这个链接:

这解决了我的问题,但我尝试使用文档中的java代码:

可悲的是,我不能运行代码,也许我犯了一些错误?我发现了一个错误,当我按照docs指令运行时,在程序运行后(不确切地说,java找不到我的电池,但代码正在编译),然后我从堆栈链接复制第一个答案,并试图将其放在“MainActivity”文件夹中,遗憾的是程序不工作,我的“旧”java代码正在从文档中复制,不是新的


如果您知道如何使用flutter中的某种按钮拍摄整个android屏幕的照片,或者如何将该链接中的代码实现到my MainActivity.java文件夹中,请帮助

您可以使用屏幕截图插件:拍摄小部件屏幕截图

屏幕截图是一个简单的插件,可以将小部件捕获为图像。此插件将您的小部件包装在RenderPaintBoundary中

将此软件包用作库

将其添加到包的pubspec.yaml文件:

依赖项: 屏幕截图:^0.2.0 现在在您的Dart代码中导入它:

import 'package:screenshot/screenshot.dart';
这个方便的插件可以用来捕获任何小部件,包括全屏截图和单个小部件,如Text()

创建屏幕截图控制器的实例

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  File _imageFile;

  //Create an instance of ScreenshotController
  ScreenshotController screenshotController = ScreenshotController(); 

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }
...
}
通过调用捕获方法获取屏幕截图。这将返回一个文件

screenshotController.capture().then((File image) {
 //Capture Done
 setState(() {
     _imageFile = image;
 });
}).catchError((onError) {
 print(onError);
});

复制

您可以使用屏幕截图插件:拍摄小部件屏幕截图

屏幕截图是一个简单的插件,可以将小部件捕获为图像。此插件将您的小部件包装在RenderPaintBoundary中

将此软件包用作库

将其添加到包的pubspec.yaml文件:

依赖项: 屏幕截图:^0.2.0 现在在您的Dart代码中导入它:

import 'package:screenshot/screenshot.dart';
这个方便的插件可以用来捕获任何小部件,包括全屏截图和单个小部件,如Text()

创建屏幕截图控制器的实例

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  File _imageFile;

  //Create an instance of ScreenshotController
  ScreenshotController screenshotController = ScreenshotController(); 

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }
...
}
通过调用捕获方法获取屏幕截图。这将返回一个文件

screenshotController.capture().then((File image) {
 //Capture Done
 setState(() {
     _imageFile = image;
 });
}).catchError((onError) {
 print(onError);
});
复制

试试这个软件包

您只需运行此功能即可拍摄手机屏幕截图:

Future<void> _capturePng() async {
    String path = await NativeScreenshot.takeScreenshot();
    print(path);
  }
Future\u capturePng()异步{
字符串路径=wait NativeScreenshot.takeScreenshot();
打印(路径);
}
您可以了解有关此软件包的更多信息

它可以与Android和IOS配合使用

希望它有用

试试这个软件包

您只需运行此功能即可拍摄手机屏幕截图:

Future<void> _capturePng() async {
    String path = await NativeScreenshot.takeScreenshot();
    print(path);
  }
Future\u capturePng()异步{
字符串路径=wait NativeScreenshot.takeScreenshot();
打印(路径);
}
您可以了解有关此软件包的更多信息

它可以与Android和IOS配合使用


希望它会有用

请告诉我们,您在代码上尝试了什么。我试过询问Flatter discord,thy告诉我关于第一个链接,其中有人使用java完成了,然后我在下面的文档教程中介绍了如何在Flatter中实现java,然后我按照第一个链接中所写的那样做,将整个块复制到名为“MainActivity,java”的活动函数中,但遗憾的是,nithing起了作用:c从正在编译的文档中获得的旧代码,即使在复制新代码时,我仍在尝试在Flatter中查找库,下面的结果可能会解决我的问题:D.感谢您试图理解我,但(我希望)我确实解决了我的问题,你在你的代码上试过什么。我试过询问Flitter discord,thy告诉我关于第一个链接,其中有人使用java来完成,然后我在下面的文档教程中如何在Flitter中实现java,然后我按照第一个链接中写的那样,将整个块复制到名为“MainActivity,java”的活动函数中,但遗憾的是,nithing成功了:c是docs What正在编译的旧代码,即使在我复制新代码的时候,我也试图在Flatter中找到库,下面的结果可能会解决我的问题:D.感谢你试图理解我,但(我希望)我确实解决了我的问题。遗憾的是,这不是一个解决方案,这个库只制作了一个特定小部件的屏幕截图,但我想用电池和时钟拍摄整个android屏幕etc@Maciek你应该提到,你已经厌倦了这些库。但我确实做到了“颤振库只允许我制作一个小部件的屏幕截图,但我想要整个android的屏幕截图”@Maciek我的意思是你应该指定哪个flutter库?不幸的是,它可能是所有的库,因为它是你的,而且“”也在做同样的事情,它正在拍摄一个小部件的照片。但是我不太擅长写作,你能告诉我在下一个问题中我应该写些什么具体的东西来让它更清楚吗?我应该写下所有图书馆的名字?但我确实写过,我不想要一张小部件的照片,这还不够吗?我很抱歉,如果这给你带来了问题,很遗憾,这不是一个解决方案。这个库只制作一个特定小部件的屏幕截图,但我想用一个电池、一个时钟对整个android屏幕进行截图etc@Maciek你应该提到你已经厌倦了这些图书馆,但我确实厌倦了“Flatter library只允许我制作一个小部件的屏幕截图,但我想要整个android的屏幕截图”@Maciek我的意思是你应该指定哪个Flatter library?不幸的是,它可能是所有的库,因为是你的,而且也是”“正在做同样的事情,正在拍摄一个小部件的照片。但是我不太擅长写作,你能告诉我在下一个问题中我应该写些什么具体的东西来让它更清楚吗?我应该写下所有图书馆的名字?但我确实写过,我不想要一张小部件的照片,这还不够吗?如果我不能,我很抱歉