I recentely added the plugin image_picker: ^0.8.5 3 from flutter pub dev. I integrated it to my flutter codes. here is the code.
This code is supposed to capture image then the image will be used at the same page in the imgRabbitdflt1,
import 'dart:io';
import 'controller/scan_controller.dart';
import 'package:flutter/material.dart';
import 'package:grabbitapp/core/app_export.dart';
import 'package:image_picker/image_picker.dart';
class ScanScreen extends GetWidget<ScanController> {
File? image;
Future pickimage() async {
final image = await ImagePicker().pickImage(source: ImageSource.camera);
if (image == null) return;
final imageTemporary = File(image.path);
setState (() => this.image = imageTemporary);
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
backgroundColor: ColorConstant.whiteA700,
body: Container(
width: size.width,
child: SingleChildScrollView(
child: Container(
decoration:
BoxDecoration(color: ColorConstant.whiteA700),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
left: getHorizontalSize(10.00),
top: getVerticalSize(135.00),
right: getHorizontalSize(10.00)),
decoration: BoxDecoration(
color: ColorConstant.bluegray100,
borderRadius: BorderRadius.circular(
getHorizontalSize(15.00))),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Padding(
padding: EdgeInsets.only(
left: getHorizontalSize(5.00),
top: getVerticalSize(50.00)),
child: image != null ? Image.file(image!) : Image.asset(
ImageConstant.imgRabbitdflt1,
height: getVerticalSize(236.00),
width:
getHorizontalSize(320.00),
fit: BoxFit.fill)),
GestureDetector(
onTap: () {
onTapImgCameraicon();
},
child: Padding(
padding: EdgeInsets.only(
left: getHorizontalSize(
10.00),
top: getVerticalSize(43.00),
right: getHorizontalSize(
10.00),
bottom:
getVerticalSize(27.29)),
child: Image.asset(
ImageConstant.imgCameraicon,
height:
getVerticalSize(77.71),
width: getHorizontalSize(
82.93),
fit: BoxFit.fill)))
])),
Padding(
padding: EdgeInsets.only(
left: getHorizontalSize(10.00),
top: getVerticalSize(135.10),
right: getHorizontalSize(10.00),
bottom: getVerticalSize(20.00)),
child: GestureDetector(
onTap: () {
onTapBtnNext();
},
child: Container(
alignment: Alignment.center,
height: getVerticalSize(40.60),
width: getHorizontalSize(267.48),
decoration: AppDecoration
.textstylemontserratromanmedium20,
child: Text("lbl_next".tr,
textAlign: TextAlign.center,
style: AppStyle
.textstylemontserratromanmedium20
.copyWith(
fontSize: getFontSize(20),
letterSpacing: 1.20)))))
]))))));
}
onTapImgCameraicon() async {
await PermissionManager.askForPermission(Permission.camera);
await PermissionManager.askForPermission(Permission.storage);
List<String?>? imageList = [];
//TODO: Permission - use imageList for using selected images
await FileManager().showModelSheetForImage(getImages: (value) async {
imageList = value;
});
}
onTapBtnNext() {
Get.toNamed(AppRoutes.rabbitGeneratedInfoScreen);
}
void setState(File Function() param0) {}
}
But when I tried to run it, I got these errors,
/E:/src/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker_android-0.8.5 1/lib/image_picker_android.dart:174:5: Error: Type 'ImagePickerOptions' not found.
ImagePickerOptions options = const ImagePickerOptions(),
^^^^^^^^^^^^^^^^^^
/E:/src/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker_android-0.8.5 1/lib/image_picker_android.dart:174:40: Error: Couldn't find constructor 'ImagePickerOptions'.
ImagePickerOptions options = const ImagePickerOptions(),
^^^^^^^^^^^^^^^^^^
/E:/src/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker_android-0.8.5 1/lib/image_picker_android.dart:174:5: Error: 'ImagePickerOptions' isn't a type.
ImagePickerOptions options = const ImagePickerOptions(),
^^^^^^^^^^^^^^^^^^
DId I miss to import something or what are nmissing that led to these errors?
CodePudding user response:
please clean your project and after run flutter pub get it will work and if still it is not working try to clear cache of your project it will work.
CodePudding user response:
Remove the package from dependencies in pubspec.yaml, run
flutter packages get
. And then add the package to dependencies again and running
flutter packages get
.This process has solved the problem for me in the past.