import 'dart:io'; import 'package:ansu_ui/dialog/as_bottom_dialog.dart'; import 'package:ansu_ui/dialog/as_bottom_dialog_item.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:image_picker/image_picker.dart'; import 'package:ansu_ui/utils/camera_view.dart'; Future pickImageFile( {double maxHeight = 3000, double maxWidth = 3000}) async { File? file = await Get.bottomSheet(ASBottomDialog( items: [ ASBottomDialogItem( title: Text('相机'), onPressed: () async { Get.back(result: await camFile()); }, ), ASBottomDialogItem( title: Text('相册'), onPressed: () async { var pickedFile = await ImagePicker().getImage( source: ImageSource.gallery, maxHeight: maxHeight, maxWidth: maxWidth, ); if (pickedFile != null) { Get.back(result: File(pickedFile.path)); } else { Get.back(); } }, ), ], )); return file; } ///获取相机文件 Future camFile({double maxHeight = 3000, double maxWidth = 3000}) async { var pickedFile = await ImagePicker().getImage( source: ImageSource.camera, maxHeight: maxHeight, maxWidth: maxWidth, ); if (pickedFile == null) return null; return File(pickedFile.path); } Future camView( BuildContext context, { double maxHeight = 3000, double maxWidth = 3000, required String title, }) async { File? file = await camFile(maxHeight: maxHeight, maxWidth: maxWidth); if (file == null) return null; return await Navigator.push(context, PageRouteBuilder( pageBuilder: (context, animation, secondAnimation) { return FadeTransition( opacity: animation, child: CameraView(file: file, title: title), ); }, )); }