step 18 : add dropdown seting camera

This commit is contained in:
sindhu
2025-02-18 12:01:20 +07:00
parent ac86a49e77
commit d9a8bf5de4
2 changed files with 47 additions and 5 deletions

View File

@@ -78,6 +78,13 @@ class Constant {
);
}
static TextStyle titlePosisiHP({required BuildContext context}) {
return TextStyle(
fontSize: Constant.getActualYPhone(context: context, y: 18),
fontWeight: FontWeight.normal,
);
}
static TextStyle titleInputan600({required BuildContext context}) {
return TextStyle(
fontSize: Constant.getActualYPhone(context: context, y: 16),

View File

@@ -31,15 +31,17 @@ class ScanScreen extends HookConsumerWidget {
final currentUser = ref.watch(currentUserProvider);
final host = currentUser?.host ?? "";
final userId = currentUser?.model.userId ?? "";
final selectedResolution =
useState<ResolutionPreset>(ResolutionPreset.medium);
useEffect(() {
Future<void> initializeCamera() async {
final cameras = await availableCameras();
cameraController.value = CameraController(
cameras[0],
// ResolutionPreset.max,
ResolutionPreset.medium,
);
cameras[0],
// ResolutionPreset.max,
// ResolutionPreset.medium,
selectedResolution.value);
initializeControllerFuture.value = cameraController.value!.initialize();
await initializeControllerFuture.value;
await cameraController.value!.setFlashMode(FlashMode.off);
@@ -49,6 +51,18 @@ class ScanScreen extends HookConsumerWidget {
return null;
}, []);
Future<void> initializeCameraAfterChangeResolution() async {
final cameras = await availableCameras();
cameraController.value = CameraController(
cameras[0],
// ResolutionPreset.max,
// ResolutionPreset.medium,
selectedResolution.value);
initializeControllerFuture.value = cameraController.value!.initialize();
await initializeControllerFuture.value;
await cameraController.value!.setFlashMode(FlashMode.off);
}
Future<File> rotateAndCropImage(File imageFile) async {
Uint8List imageBytes = await imageFile.readAsBytes();
img.Image? original = img.decodeImage(imageBytes);
@@ -188,8 +202,29 @@ class ScanScreen extends HookConsumerWidget {
return Scaffold(
appBar: AppBar(
title: Text('Posisi Foto Landscape'),
title: Text(
'Posisi Foto Landscape',
style: Constant.titlePosisiHP(context: context),
),
automaticallyImplyLeading: false,
actions: [
DropdownButton<ResolutionPreset>(
value: selectedResolution.value,
onChanged: (ResolutionPreset? newValue) {
if (newValue != null) {
selectedResolution.value = newValue;
initializeCameraAfterChangeResolution();
}
},
items: ResolutionPreset.values.map((ResolutionPreset value) {
return DropdownMenuItem<ResolutionPreset>(
value: value,
child: Text(value.toString().split('.').last),
);
}).toList(),
underline: SizedBox.shrink(),
),
],
),
backgroundColor: Colors.black.withOpacity(0.5),
body: Stack(