作者:风尚宣城_588 | 来源:互联网 | 2023-09-25 14:28
实现功能:拍照和选择相册,单张上传,自己封装了一个类,方便使用直接调用
注:多照片上传后期封装 发布
1、在pubspec.yaml 中添加插件
#单照片,使用相机拍摄和图库选择照片
image_picker: 0.6.7+22
2.封装相册和拍照
import ‘dart:io’;
import ‘package:image_picker/image_picker.dart’;
///
/// 图片上传封装(单张图片)
///
class PickImageResponse{
Listpaths; // 用于上传
Listfiles; // 用于展示用的缩略图
final ImagePickerpicker =ImagePicker();
PickImageResponse({this.paths, this.files});
/// 打开相机
Future Function()openCamera = ()async {
var image =await ImagePicker.pickImage(source: ImageSource.camera);
if (image.path ==null)return PickImageResponse();
return PickImageResponse(
paths: [image.path],
files: [File(image.path)]
);
};
///打开相册
Future Function()openPhoto = ()async {
var image =await ImagePicker.pickImage(source: ImageSource.gallery);
if (image.path ==null)return PickImageResponse();
return PickImageResponse(
paths: [image.path],
files: [File(image.path)]
);
};
}
调用方法,注:布局样式自己写
List pathsList; // 用于上传
List pathFiles; // 用于展示用的缩略图
PickImageResponse().openCamera().then((camera) => {
setState(() {
pathFiles = camera.files;
})
});
PickImageResponse().openPhoto().then((photo) => {
setState(() {
pathFiles = photo.files;
})
});