All Projects β†’ roycornelissen β†’ Gmimagepicker.xamarin

roycornelissen / Gmimagepicker.xamarin

Licence: mit
Port of the original GMImagePicker component to Xamarin.iOS

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Gmimagepicker.xamarin

Open Source Xamarin Apps
πŸ“± Collaborative List of Open Source Xamarin Apps
Stars: ✭ 318 (+389.23%)
Mutual labels:  iphone, ipad, xamarin, xamarin-ios, mobile
Metrica Plugin Xamarin
Xamarin plugin for Yandex AppMetrica SDK
Stars: ✭ 12 (-81.54%)
Mutual labels:  xamarin, xamarin-ios, mobile
Yampa
Functional Reactive Programming domain-specific language embedded in Haskell, for programming efficient hybrid (mixed discrete-time and continuous-time) systems.
Stars: ✭ 294 (+352.31%)
Mutual labels:  iphone, ipad, mobile
Xweather
A weather app for iOS and Android built with Xamarin
Stars: ✭ 62 (-4.62%)
Mutual labels:  xamarin, xamarin-ios
Numericaltextentry
An iOS library for beautiful number entry fields. iPad friendly. Written in Swift.
Stars: ✭ 16 (-75.38%)
Mutual labels:  iphone, ipad
Brainpowerapp
A visual memory training game, a mobile game made with Xamarin for both Android and IOS .
Stars: ✭ 17 (-73.85%)
Mutual labels:  xamarin, mobile
Xtoolkit.whitelabel
Modular MVVM framework for fast creating powerful cross-platform applications with Xamarin.
Stars: ✭ 22 (-66.15%)
Mutual labels:  xamarin, mobile
Realm Dotnet
Realm is a mobile database: a replacement for SQLite & ORMs
Stars: ✭ 927 (+1326.15%)
Mutual labels:  xamarin, mobile
Realm.json.extensions
Extension Methods for adding JSON APIs to a Realm Instance
Stars: ✭ 9 (-86.15%)
Mutual labels:  xamarin, xamarin-ios
Azure For Developers Workshop
The Azure cloud is huge and the vast service catalog may appear daunting at first, but it doesn’t have to be!
Stars: ✭ 38 (-41.54%)
Mutual labels:  xamarin, xamarin-ios
Mvvmlight
The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone.
Stars: ✭ 973 (+1396.92%)
Mutual labels:  xamarin, xamarin-ios
Otganttchartkit
OTGanttChartKit is gantt chart framework for iOS. This framework use easily like UITableView.
Stars: ✭ 38 (-41.54%)
Mutual labels:  iphone, ipad
Chat Sdk Ios
Chat SDK iOS - Open Source Mobile Messenger
Stars: ✭ 813 (+1150.77%)
Mutual labels:  iphone, ipad
Embeddinator 4000
Tools to turn .NET libraries into native libraries that can be consumed on Android, iOS, Mac, Linux and other platforms.
Stars: ✭ 735 (+1030.77%)
Mutual labels:  xamarin, mobile
Responsivedevices.css
Responsive CSS Device frames for your landing pages
Stars: ✭ 59 (-9.23%)
Mutual labels:  iphone, ipad
Blockparty
Ad Blocker App for iOS, macOS
Stars: ✭ 722 (+1010.77%)
Mutual labels:  iphone, ipad
Open Source Ios Apps
πŸ“± Collaborative List of Open-Source iOS Apps
Stars: ✭ 28,826 (+44247.69%)
Mutual labels:  iphone, ipad
Nativescript Fresco
This repository holds the NativeScript plugin that exposes the functionality of the Fresco image library to NativeScript developers.
Stars: ✭ 51 (-21.54%)
Mutual labels:  images, mobile
Mathparser.org Mxparser
Math Parser Java Android C# .NET/MONO (.NET Framework, .NET Core, .NET Standard, .NET PCL, Xamarin.Android, Xamarin.iOS) CLS Library - a super easy, rich and flexible mathematical expression parser (expression evaluator, expression provided as plain text / strings) for JAVA and C#. Main features: rich built-in library of operators, constants, math functions, user defined: arguments, functions, recursive functions and general recursion (direct / indirect). Additionally parser provides grammar and internal syntax checking.
Stars: ✭ 624 (+860%)
Mutual labels:  xamarin, xamarin-ios
Alsystemutilities
THIS REPO IS NO LONGER MAINTAINED! Check https://github.com/andrealufino/Luminous. This library provides a list of 80 methods to get every kind of system information!
Stars: ✭ 644 (+890.77%)
Mutual labels:  iphone, ipad

GMImagePicker.Xamarin

Build status NuGet package

An image & video picker supporting multiple selection and several customizations. Powered by the iOS 8 Photo framework.

This is a 1-to-1 port of the origina GMImagePicker component made by Guillermo Muntaner from Objective-C to C# for Xamarin.iOS. The original source can be found here: github.com/guillermomuntaner/GMImagePicker. This port is published with kind permission from Guillermo Muntaner.

Screenshots

Screenshot

Features

  1. Allows selection of multiple photos and videos, even from different albums.
  2. Optional single selection mode.
  3. Optional camera access.
  4. Optional bottom toolbar with information about users selection.
  5. Full and customizable acces to smart collections(Favorites, Slo-mo or Recently deleted).
  6. Filter by collections & albums.
  7. Filter by media type.
  8. Customizable colors, fonts and labels to ease branding of the App.
  9. By default mimics UIImagePickerController in terms of features, appearance and behaviour.
  10. Dynamically sized grid view, easy to customize and fully compatible with iPhone 6/6+ and iPad.
  11. Works in landscape orientation and allow screen rotation!
  12. It can be used as Popover on iPad, with customizable size.
  13. Fast & small memory footprint powered by PHCachingImageManager.
  14. Full adoption of new iOS8 PhotoKit. Returns and array of PHAssets.
  15. Ability to add additional toolbar items to the toolbar

Usage

Installation

Manually

Clone or download solution and use GMImagePicker.Xamarin csproj in your solution.

Nuget

Get GMImagePicker.Xamarin package from Nuget and add it to your iOS application project.

Install-Package GMImagePicker.Xamarin

Initialize the picker, hook up events and present it

var picker = new GMImagePickerController ();
picker.FinishedPickingAssets += (sender, args) => { 
    Console.WriteLine ("User finished picking assets. {0} items selected.", args.Assets.Length); 
};
await PresentViewControllerAsync (picker, true);

You can also implement optional an optional event handler for the Canceled event

picker.Canceled += (sender, args) { Console.WriteLine ("user canceled picking assets"); };

Customization

Before presenting the picker, you can customize some of its properties

...
//Display or not the selection info Toolbar:
picker.DisplaySelectionInfoToolbar = true;

//Display or not the number of assets in each album:
picker.DisplayAlbumsNumberOfAssets = true;

//Customize the picker title and prompt (helper message over the title)
picker.Title = "Custom title";
picker.CustomNavigationBarPrompt = "Custom helper message!";

//Customize the number of cols depending on orientation and the inter-item spacing
picker.ColsInPortrait = 3;
picker.ColsInLandscape = 5;
picker.MinimumInteritemSpacing = 2.0f;

//You can pick the smart collections you want to show:
picker.CustomSmartCollections = new [] { PHAssetCollectionSubtype.AlbumRegular, PHAssetCollectionSubtype.AlbumImported };

//Disable multiple selecion
picker.AllowsMultipleSelection = false;

//Show a promt to confirm single selection
picker.ConfirmSingleSelection = true;
picker.ConfirmSingleSelectionPrompt = "Do you want to select the image you have chosen?";

//Camera integration
picker.ShowCameraButton = true;
picker.AutoSelectCameraImages = true;

//Select the media types you want to show and filter out the rest
picker.MediaTypes = new [] { PHAssetMediaType.Image };

//Switch the sort order of the photos grid
picker.GridSortOrder = SortOrder.Descending; // (=newest on top); SortOrder.Ascending (oldest on top) is the default

//UI color & text customizations
picker.PickerBackgroundColor = UIColor.Black;
picker.PickerTextColor = UIColor.White;
picker.ToolbarBarTintColor = UIColor.DarkGray;
picker.ToolbarTextColor = UIColor.White;
picker.ToolbarTintColor = UIColor.Red;
picker.NavigationBarBackgroundColor = UIColor.Black;
picker.NavigationBarTextColor = UIColor.White;
picker.NavigationBarTintColor = UIColor.Red;
picker.PickerFontName = "Verdana";
picker.PickerBoldFontName = "Verdana-Bold";
picker.PickerFontNormalSize = 14.0f;
picker.PickerFontHeaderSize = 17.0f;
picker.PickerStatusBarStyle = UIStatusBarStyle.LightContent;
picker.UseCustomFontForNavigationBar = true;

//Custom or additional toolbar items

picker.AdditionalToolbarItems = new UIBarButtonItem[]
{ 
    new UIBarButtonItem(UIBarButtonSystemItem.Bookmarks),
    new UIBarButtonItem("Custom", UIBarButtonItemStyle.Bordered, (s, e) => { Console.WriteLine("test"); })
};

Use it as popover on iPad

Also works as Popover on the iPad! (with customizable size)

Screenshot

This code works in both iPhone & iPad

...
var picker = new GMImagePickerController ();

picker.Title = "Custom title";
picker.CustomNavigationBarPrompt = "Custom helper message!";
picker.ColsInPortrait = 3;
picker.ColsInLandscape = 5;
picker.MinimumInteritemSpacing = 2.0f;
picker.ModalPresentationStyle = UIModalPresentation.Popover;

var popPC = picker.PopoverPresentationController;
popPC.PermittedArrowDirections = UIPopoverArrowDirection.Any;
popPC.SourceView = _gmImagePickerButton;
popPC.SourceRect = _gmImagePickerButton.Bounds;

ShowViewController(picker, null);

Minimum Requirement

Xamarin Studio / Visual Studio, Xamarin.iOS and iOS 8+

License

The MIT License (MIT)

Copyright (c) 2016 Roy Cornelissen

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].