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 {
|
||||
Future<Uint8List?> showPickImageDialog(BuildContext context,
|
||||
{String title = ImagePickerSettings.title,
|
||||
String makePhotoText = ImagePickerSettings.makePhotoText,
|
||||
IconData makePhotoIcon = ImagePickerSettings.makePhotoIcon,
|
||||
String selectImageText = ImagePickerSettings.selectImageText,
|
||||
IconData selectImageIcon = ImagePickerSettings.selectImageIcon,
|
||||
String closeButtonText = ImagePickerSettings.closeButtonText}) {
|
||||
return ImagePickerUI().pickImageDialog(context, title, makePhotoText,
|
||||
makePhotoIcon, selectImageText, selectImageIcon, closeButtonText);
|
||||
{String title = ImagePickerDefaultParameters.title,
|
||||
double titleTextSize = ImagePickerDefaultParameters.titleTextSize,
|
||||
double iconSize = ImagePickerDefaultParameters.iconSize,
|
||||
double iconTextSize = ImagePickerDefaultParameters.iconTextSize,
|
||||
double spaceBetweenIcons = ImagePickerDefaultParameters.spaceBetweenIcons,
|
||||
String makePhotoText = ImagePickerDefaultParameters.makePhotoText,
|
||||
IconData makePhotoIcon = ImagePickerDefaultParameters.makePhotoIcon,
|
||||
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';
|
||||
|
||||
class ImagePickerSettings {
|
||||
class ImagePickerDefaultParameters {
|
||||
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 IconData makePhotoIcon = Icons.camera_alt_rounded;
|
||||
static const String selectImageText = "Select File";
|
||||
|
|
|
@ -6,11 +6,14 @@ import 'package:image_picker/image_picker.dart';
|
|||
|
||||
class ImagePickerUI {
|
||||
final ImagePickerService _imagePickerService = ImagePickerService();
|
||||
final double iconSize = 150;
|
||||
|
||||
Future<Uint8List?> pickImageDialog(
|
||||
BuildContext context,
|
||||
String title,
|
||||
double titleTextSize,
|
||||
double iconSize,
|
||||
double iconTextSize,
|
||||
double spaceBetweenIcons,
|
||||
String makePhotoText,
|
||||
IconData makePhotoIcon,
|
||||
String selectImageText,
|
||||
|
@ -19,33 +22,51 @@ class ImagePickerUI {
|
|||
return await showModalBottomSheet<Uint8List?>(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return Column(mainAxisSize: MainAxisSize.min, children: <Widget>[
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Text(
|
||||
return Wrap(
|
||||
children: <Widget>[
|
||||
ListTile(
|
||||
title: Text(
|
||||
title,
|
||||
textScaleFactor: 2,
|
||||
style: TextStyle(
|
||||
fontSize: titleTextSize,
|
||||
),
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
generateColumn(context, selectImageIcon, ImageSource.gallery,
|
||||
selectImageText),
|
||||
generateColumn(
|
||||
context, makePhotoIcon, ImageSource.camera, makePhotoText),
|
||||
generateColumn(context, selectImageIcon, iconSize, iconTextSize,
|
||||
ImageSource.gallery, selectImageText),
|
||||
SizedBox(
|
||||
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(),
|
||||
child: Text(closeButtonText)),
|
||||
]);
|
||||
)
|
||||
],
|
||||
),
|
||||
const SizedBox(
|
||||
height: 60,
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Column generateColumn(BuildContext context, IconData icon,
|
||||
ImageSource imageSource, String bottomText) {
|
||||
Column generateColumn(BuildContext context, IconData icon, double iconSize,
|
||||
double iconTextSize, ImageSource imageSource, String bottomText) {
|
||||
return Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: <Widget>[
|
||||
|
@ -54,7 +75,10 @@ class ImagePickerUI {
|
|||
iconSize: iconSize,
|
||||
onPressed: () => _imagePickerService.pickImage(imageSource, context),
|
||||
),
|
||||
Text(bottomText),
|
||||
Text(
|
||||
bottomText,
|
||||
style: TextStyle(fontSize: iconTextSize),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
|
|
Loading…
Reference in a new issue