コード例 #1
0
        void SelectImageFromGallery(string localUrl, string remoteUrl, string fileName)
        {
            if (ProfileImageButton == null)
            {
                return;
            }

            var vc = new GalleryImagePicker();

            vc.Canceled             += (s, e) => { vc.DismissViewController(true, null); };
            vc.FinishedPickingMedia += (object s, UIImagePickerMediaPickedEventArgs e) =>
            {
                switch (e.Info[UIImagePickerController.MediaType].ToString())
                {
                case "public.image":
                    Console.WriteLine("Image selected");

                    var me = RealmUserServices.GetMe(false);

                    ProfileImageButton.SetImage(UIImage.FromBundle(FallbackImageFileName), new UIControlState());
                    ProfileImageButton.ShowLoadingIndicators();

                    UIImage originalImage = e.Info[UIImagePickerController.OriginalImage] as UIImage;
                    var     smallerImage  = ImageUtils.ScaledToSize(originalImage, new CGSize(200, 200));
                    var     bytes         = ImageUtils.ByteArrayFromImage(smallerImage, 100);
                    S3Utils.UploadPhoto(bytes, localUrl, remoteUrl, fileName, () =>
                    {
                        SDWebImageManager.SharedManager.ImageCache.RemoveImage(me.RemoteProfileImageURL, true, null);
                        ProfileImageButton.SetImageWithCustomCache(me.GetRemoteProfileImageUrlCached(), FallbackImageFileName, FallbackImageFileName, me.RemoteProfileImageURL);
                    }, null);


                    break;

                case "public.video":
                    Console.WriteLine("Video selected");
                    break;
                }
                vc.DismissViewController(true, null);
            };
            PresentViewController(vc, true, null);
        }
コード例 #2
0
 void SelectImageFromGallery(ICardView target, string localUrl, string remoteUrl, string fileName,string cacheKey)
 {
            if (target == null) return;

            var vc = new GalleryImagePicker();
            vc.Canceled += (sender, e) => { vc.DismissViewController(true, null); };
            vc.FinishedPickingMedia += (object sender, UIImagePickerMediaPickedEventArgs e) =>
            {
                switch (e.Info[UIImagePickerController.MediaType].ToString())
                {
                    case "public.image":
                        Console.WriteLine("Image selected");

                        target.ToggleLoadingIndicators(true);
                        UIImage editedImage = e.Info[UIImagePickerController.EditedImage] as UIImage;
                        editedImage = ImageUtils.ScaledToSize(editedImage, new CGSize(200, 200));
                        var bytes = ImageUtils.ByteArrayFromImage(editedImage, 100);
                        S3Utils.UploadPhoto(bytes,localUrl, remoteUrl, fileName, () =>
                        {
                            SDWebImageManager.SharedManager.ImageCache.ClearDisk();
                            SDWebImageManager.SharedManager.ImageCache.ClearMemory();
                            Update(true);
                        }, null);


                        break;
                    case "public.video":
                        Console.WriteLine("Video selected");
                        break;
                }
                vc.DismissViewController(true, null);
            };
            PresentViewController(vc, true, null);
        }