如何解决扑朔迷离如何存储或保存相机和图库中的图像,以及每次显示新的空白页
我想创建或构建一个flutter应用程序,每次有新页面出现时,都要求用户从设备库或Camera上载图像,并在sqflite等中存储或保存。
请注意,每次应出现一个新的空白页面供用户上传新图像。用户应该第二次访问同一页面时,应该将其还原或以后再查看。
class _SaveImageDemoSQLiteState extends State<SaveImageDemoSQLite> {
//
Future<File> imageFile;
Image image;
DBHelper dbHelper;
List<Photo> images;
@override
void initState() {
super.initState();
images = [];
dbHelper = DBHelper();
refreshImages();
}
refreshImages() {
dbHelper.getPhotos().then((imgs) {
setState(() {
images.clear();
images.addAll(imgs);
});
});
}
pickImageFromGallery() {
ImagePicker.pickImage(source: ImageSource.gallery).then((imgFile) {
String imgString = Utility.base64String(imgFile.readAsBytesSync());
Photo photo = Photo(0,imgString);
dbHelper.save(photo);
refreshImages();
});
}
pickImageFromCamera() {
ImagePicker.pickImage(source: ImageSource.camera).then((imgFile) {
String imgString = Utility.base64String(imgFile.readAsBytesSync());
Photo photo = Photo(0,imgString);
dbHelper.save(photo);
refreshImages();
});
}
gridView() {
return Padding(
padding: EdgeInsets.all(5.0),child: GridView.count(
crossAxisCount: 2,childAspectRatio: 1.0,mainAxisSpacing: 4.0,crossAxisSpacing: 4.0,children: images.map((photo) {
return Utility.imageFromBase64String(photo.photo_name);
}).toList(),),);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),actions: <Widget>[
IconButton(
icon: Icon(Icons.add_a_photo),onPressed: () {
pickImageFromGallery();
},IconButton(
icon: Icon(Icons.photo_camera),onPressed: () {
pickImageFromCamera()();
},)
],body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[
Flexible(
child: gridView(),)
],);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。