Flutter Timer Camera
A Flutter package that allows you to open the camera and capture image with a timer logic.
Android | iOS | |
---|---|---|
Support | SDK 21+ | iOS 11.0 + |
we support only these versions since this package adopts the camera
plugin
Features
- Open the customized camera directly from Flutter app.
- Set a timer to delay the capture.
- Switch camera front and back.
Installation
To use this package, add flutter_timer_camera
as a dependency in your pubspec.yaml file.
dependencies:
flutter_timer_camera: ^1.0.3
iOS
Add camera usage description on ios/Runner/Info.plist
.
<key>NSCameraUsageDescription</key>
<string>describe why you use camera access</string>
Android
Change minimumSdk version to at least 21
minSdkVersion 21
Usage
import 'package:flutter_timer_camera/flutter_timer_camera.dart';
.
.
.
ElevatedButton(
onPressed: () {
showTimerCamera(
context: context,
onSubmit: (Xfile? capturedImage) {
setState(() {
currentImage = capturedImage;
});
},
);
},
child: const Text('Open Camera'),
),
Parameters for showTimerCamera
Parameter | Description |
---|---|
BuildContext context | The BuildContext in which the bottom sheet is shown. |
OnCapturedImageCallback onSubmit | Callback function that's triggered when an image is captured. |
bool enableDrag = false | Specifies if the bottom sheet can be dragged. Defaults to false. |
VoidCallback? onCameraAccessDenied | Callback for handling unauthorized camera access. |
BoxFit? imageFit | Defines how the captured image should fit within the bounds of the camera view. |
Widget? backButtonOnNormal | Custom widget for the back button in its normal state. |
Widget? backButtonOnCaptured | Custom widget for the back button in the captured image state. |
Widget? switchCameraButton | Custom widget for the switch camera button. |
ButtonStyle? switchCameraButtonStyle | Style for the switch camera button. |
Alignment? captureButtonAlignment | Alignment for the capture button. |
Widget? onNormalButton | Custom widget for the capture button in its normal state. |
Widget? onCountingButton | Custom widget for the capture button during countdown. |
Widget? onCapturedButton | Custom widget for the capture button in the captured state. |
Alignment? timerOptionAlignment | Alignment for timer options. |
TimerOptionStyleParamsModel? timerOptionStyleParamsModel | Styling parameters for timer options. |
TextStyle? counterTextStyle | Text style for the countdown timer. |
List | List of timer options for capturing images. |
double? captureButtonPaddingHeight | Padding height for the capture button from the bottom. |
double? timerOptionPaddingHeight | Padding height for the timer options from the captured button. |
Alignment? counterTextAlignment | Alignment for the countdown timer text. |
EdgeInsetsGeometry? actionButtonPadding | Padding for action buttons. |
int defaultTimerOptionIndex = 0 | Default selected index for timer options. |
bool useSafeArea = true | Determines whether to respect safe area insets. Defaults to true. |
bool isDismissble = true | Indicates whether the sheet is dismissible. Defaults to true. |
bool useRootNavigator = false | Ensures that the root navigator is used for navigation when true. |
Contributing
Any kind of pull requests are welcome. Feel free to fork the project, open issues, and submit PRs.