gallery mode save images

This commit is contained in:
niuhuan 2021-11-17 15:42:36 +08:00
parent d1cf973a16
commit a3daed42a1
1 changed files with 39 additions and 1 deletions

View File

@ -651,7 +651,7 @@ class _GalleryReaderState extends State<_GalleryReader> {
}
Widget _buildViewer() {
return PhotoViewGallery.builder(
var gallery = PhotoViewGallery.builder(
scrollDirection:
widget.struct.pagerDirection == ReaderDirection.TOP_TO_BOTTOM
? Axis.vertical
@ -724,6 +724,44 @@ class _GalleryReaderState extends State<_GalleryReader> {
);
},
);
return GestureDetector(
child: gallery,
onLongPress: () async {
var index = _current - 1;
if (index >= 0 && _current < widget.struct.images.length) {
Future<String> Function() load = () async {
var item = widget.struct.images[index];
if (item.downloadLocalPath != null) {
return method.downloadImagePath(item.downloadLocalPath!);
}
var data = await method.remoteImageData(item.fileServer, item.path);
return data.finalPath;
};
String? choose =
await chooseListDialog(context, '请选择', ['预览图片', '保存图片']);
switch (choose) {
case '预览图片':
try {
var file = await load();
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => FilePhotoViewScreen(file),
));
} catch (e) {
defaultToast(context, "图片加载失败");
}
break;
case '保存图片':
try {
var file = await load();
saveImage(file, context);
} catch (e) {
defaultToast(context, "图片加载失败");
}
break;
}
}
},
);
}
List<Widget> _buildControllers() {