问题描述
我正在尝试构建一个有助于拍摄整个屏幕(不包括AppBar)的屏幕截图的应用程序
我遇到了一个使用package:screenshot和package:image_gallery_saver的示例应用程序,并且能够成功运行它
但是保存到图库中的屏幕截图只是Flutter Logo,而不是Scaffold的整个主体。
我不明白我在做什么错。
请在下面查看我的代码并为我提供帮助
代码:
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:screenshot/screenshot.dart';
import 'package:image_gallery_saver/image_gallery_saver.dart';
class MyApp2 extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',theme: ThemeData(
primarySwatch: Colors.blue,),home: MyHomePage(title: 'Screenshot Demo Home Page'),);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key,this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
ScreenshotController screenshotController = ScreenshotController();
@override
void initState() {
// TODO: implement initState
super.initState();
}
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),body: Screenshot(
controller: screenshotController,child: Container(
child: new Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[
Text(
'You have pushed the button this many times:' + _counter.toString(),FlutterLogo(),],floatingActionButton: FloatingActionButton(
onPressed: () async{
_incrementCounter();
screenshotController.capture().then((File image) async {
//print("Capture Done");
await ImageGallerySaver.saveImage(image.readAsBytesSync(),name: 'Sujiht'); // Save image to gallery,Needs plugin https://pub.dev/packages/image_gallery_saver
print("File Saved to Gallery");
}).catchError((onError) {
print(onError);
});
},tooltip: 'Increment',child: Icon(Icons.add),// This trailing comma makes auto-formatting nicer for build methods.
);
}
// _saved(File image) async {
// final result = await ImageGallerySaver.saveImage(image.readAsBytesSync());
// print("File Saved to Gallery");
// }
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)