mirror of
https://github.com/Iconica-Development/flutter_image_picker.git
synced 2025-05-18 19:53:45 +02:00
more parameters and improvements to the modal
This commit is contained in:
parent
1f2af6b0b2
commit
fe9ca37185
3 changed files with 76 additions and 34 deletions
|
@ -6,13 +6,27 @@ import 'src/models/image_picker_settings.dart';
|
||||||
|
|
||||||
class ImagePicker {
|
class ImagePicker {
|
||||||
Future<Uint8List?> showPickImageDialog(BuildContext context,
|
Future<Uint8List?> showPickImageDialog(BuildContext context,
|
||||||
{String title = ImagePickerSettings.title,
|
{String title = ImagePickerDefaultParameters.title,
|
||||||
String makePhotoText = ImagePickerSettings.makePhotoText,
|
double titleTextSize = ImagePickerDefaultParameters.titleTextSize,
|
||||||
IconData makePhotoIcon = ImagePickerSettings.makePhotoIcon,
|
double iconSize = ImagePickerDefaultParameters.iconSize,
|
||||||
String selectImageText = ImagePickerSettings.selectImageText,
|
double iconTextSize = ImagePickerDefaultParameters.iconTextSize,
|
||||||
IconData selectImageIcon = ImagePickerSettings.selectImageIcon,
|
double spaceBetweenIcons = ImagePickerDefaultParameters.spaceBetweenIcons,
|
||||||
String closeButtonText = ImagePickerSettings.closeButtonText}) {
|
String makePhotoText = ImagePickerDefaultParameters.makePhotoText,
|
||||||
return ImagePickerUI().pickImageDialog(context, title, makePhotoText,
|
IconData makePhotoIcon = ImagePickerDefaultParameters.makePhotoIcon,
|
||||||
makePhotoIcon, selectImageText, selectImageIcon, closeButtonText);
|
String selectImageText = ImagePickerDefaultParameters.selectImageText,
|
||||||
|
IconData selectImageIcon = ImagePickerDefaultParameters.selectImageIcon,
|
||||||
|
String closeButtonText = ImagePickerDefaultParameters.closeButtonText}) {
|
||||||
|
return ImagePickerUI().pickImageDialog(
|
||||||
|
context,
|
||||||
|
title,
|
||||||
|
titleTextSize,
|
||||||
|
iconSize,
|
||||||
|
iconTextSize,
|
||||||
|
spaceBetweenIcons,
|
||||||
|
makePhotoText,
|
||||||
|
makePhotoIcon,
|
||||||
|
selectImageText,
|
||||||
|
selectImageIcon,
|
||||||
|
closeButtonText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class ImagePickerSettings {
|
class ImagePickerDefaultParameters {
|
||||||
static const String title = "Upload Image";
|
static const String title = "Upload Image";
|
||||||
|
static const double titleTextSize = 20;
|
||||||
|
static const double iconSize = 125;
|
||||||
|
static const double iconTextSize = 15;
|
||||||
|
static const double spaceBetweenIcons = 30;
|
||||||
static const String makePhotoText = "Take a Picture";
|
static const String makePhotoText = "Take a Picture";
|
||||||
static const IconData makePhotoIcon = Icons.camera_alt_rounded;
|
static const IconData makePhotoIcon = Icons.camera_alt_rounded;
|
||||||
static const String selectImageText = "Select File";
|
static const String selectImageText = "Select File";
|
||||||
|
|
|
@ -6,11 +6,14 @@ import 'package:image_picker/image_picker.dart';
|
||||||
|
|
||||||
class ImagePickerUI {
|
class ImagePickerUI {
|
||||||
final ImagePickerService _imagePickerService = ImagePickerService();
|
final ImagePickerService _imagePickerService = ImagePickerService();
|
||||||
final double iconSize = 150;
|
|
||||||
|
|
||||||
Future<Uint8List?> pickImageDialog(
|
Future<Uint8List?> pickImageDialog(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
String title,
|
String title,
|
||||||
|
double titleTextSize,
|
||||||
|
double iconSize,
|
||||||
|
double iconTextSize,
|
||||||
|
double spaceBetweenIcons,
|
||||||
String makePhotoText,
|
String makePhotoText,
|
||||||
IconData makePhotoIcon,
|
IconData makePhotoIcon,
|
||||||
String selectImageText,
|
String selectImageText,
|
||||||
|
@ -19,33 +22,51 @@ class ImagePickerUI {
|
||||||
return await showModalBottomSheet<Uint8List?>(
|
return await showModalBottomSheet<Uint8List?>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
|
return Wrap(
|
||||||
const SizedBox(
|
children: <Widget>[
|
||||||
height: 20,
|
ListTile(
|
||||||
),
|
title: Text(
|
||||||
Text(
|
|
||||||
title,
|
title,
|
||||||
textScaleFactor: 2,
|
style: TextStyle(
|
||||||
|
fontSize: titleTextSize,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
generateColumn(context, selectImageIcon, ImageSource.gallery,
|
generateColumn(context, selectImageIcon, iconSize, iconTextSize,
|
||||||
selectImageText),
|
ImageSource.gallery, selectImageText),
|
||||||
generateColumn(
|
SizedBox(
|
||||||
context, makePhotoIcon, ImageSource.camera, makePhotoText),
|
width: spaceBetweenIcons,
|
||||||
|
),
|
||||||
|
generateColumn(context, makePhotoIcon, iconSize, iconTextSize,
|
||||||
|
ImageSource.camera, makePhotoText),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
ElevatedButton(
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 300,
|
||||||
|
height: 40,
|
||||||
|
child: ElevatedButton(
|
||||||
onPressed: () => Navigator.of(context).pop(),
|
onPressed: () => Navigator.of(context).pop(),
|
||||||
child: Text(closeButtonText)),
|
child: Text(closeButtonText)),
|
||||||
]);
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const SizedBox(
|
||||||
|
height: 60,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Column generateColumn(BuildContext context, IconData icon,
|
Column generateColumn(BuildContext context, IconData icon, double iconSize,
|
||||||
ImageSource imageSource, String bottomText) {
|
double iconTextSize, ImageSource imageSource, String bottomText) {
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
|
@ -54,7 +75,10 @@ class ImagePickerUI {
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => _imagePickerService.pickImage(imageSource, context),
|
onPressed: () => _imagePickerService.pickImage(imageSource, context),
|
||||||
),
|
),
|
||||||
Text(bottomText),
|
Text(
|
||||||
|
bottomText,
|
||||||
|
style: TextStyle(fontSize: iconTextSize),
|
||||||
|
),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 20,
|
height: 20,
|
||||||
),
|
),
|
||||||
|
|
Loading…
Reference in a new issue