Skip to content

This package is based on Custom-gallery-display (my package) to make it easy and fast.

License

Notifications You must be signed in to change notification settings

AhmedAbdoElhawary/image_picker_plus

Repository files navigation

Image picker plus

When you try to add a package (like image_picker) to pick an image from a gallery/camera, you will face a lot of issues like:-

  • If your app supports multi-themes image picker will not respond with that.
  • If your app supports multi-languages image picker will not respond with that.
  • If your app has a beautiful design and a good user experience, image_picker will break all of this, Because image_picker has a traditional UI of Gallery display.

In (image_picker_plus), we solve all those issues and many other features like:-

  • You can customize the UI of displaying the gallery.
  • You can crop the selected image(s) with different aspect ratios.
  • You can display photos and videos and choose from both of them.
  • You can display a gallery, camera, and video, and the user can choose between them.

Pub Package License: MIT

Installing

IOS

* The camera plugin compiles for any version of iOS, but its functionality requires iOS 10 or higher. If compiling for iOS 9, make sure to programmatically check the version of iOS running on the device before using any camera plugin features. The device_info_plus plugin, for example, can be used to check the iOS version.

Add two rows to the ios/Runner/Info.plist:

  • one with the key Privacy - Photo Usage Description and a usage description.
  • and one with the key Privacy - Camera Usage Description and a usage description.
  • and one with the key Privacy - Microphone Usage Description and a usage description.

If editing Info.plist as text, add:

<key>NSPhotoLibraryUsageDescription</key>
<string>your usage description here</string>
<key>NSCameraUsageDescription</key>
<string>your usage description here</string>
<key>NSMicrophoneUsageDescription</key>
<string>your usage description here</string>

Android

  • Change the minimum Android sdk version to 21 (or higher), and compile sdk to 31 (or higher) in your android/app/build.gradle file.
compileSdkVersion 33
        minSdkVersion 21
  • Add this permission into your AndroidManifest.xml
<manifest>
    ...
    <application
        android:requestLegacyExternalStorage="true"
    ...
</application>
<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE>" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    </manifest>

1. Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  image_picker_plus: [last_version]

2. Install it

You can install packages from the command line:

with pub:

$ pub get image_picker_plus

with Flutter:

$ flutter pub add image_picker_plus

3. Import it

In your Dart code, you can use:

import 'package:image_picker_plus/image_picker_plus.dart';