自定义相机预览
使用 Flutter 开发的组件
目的
与一次拍摄产品照片并在用户需要上传时一张一张地处理不同,他们可以使用自定义相机预览在同一屏幕上拍摄照片,将它们显示为列表,并在需要时从列表中删除。
说明
相机预览(如照片所示)
用户可以通过相机按钮拍照,并将其保存到照片列表中,如下所示:
如果用户想从列表中删除照片,用户应该使用图像上方的“删除”按钮。我们从列表中删除了狗的照片(第三张照片)(您可以将之前的屏幕截图与下面的照片进行比较)
相机实现
https://pub.dev/packages/camera
您需要在相机预览页面导入“package:camera/camera.dart”。此外,您应该在 initState 中初始化您的相机控制器
@override
void initState() {
super.initState();
availableCameras().then((availableCameras) {
cameras = availableCameras;
if (cameras.isNotEmpty) {
setState(() {
selectedCameraIdx = 0;
});
_initCameraController(cameras[selectedCameraIdx]).then((void v) {});
} else {
print("No camera available");
}
}).catchError((err) {
print('Error: $err.code\nError Message: $err.message');
});
}
用法
如果相机控制器为空或未初始化,则返回加载指示器。如果不是,则使用您必须提供的 File 类型空列表和相机控制器返回自定义相机预览
if (controller == null || !controller!.value.isInitialized) {
return const Center(
child: CircularProgressIndicator(
color: Colors.red,
));
}
return CustomCameraPreview(
imageFiles: _homeController.imageFiles,
cameraController: controller!,
);
演示
customCameraPreview.mp4


