public override void ViewDidAppear(bool animated)
        {
            base.ViewDidAppear (animated);

             _takePictureButton = new UIButton (UIButtonType.RoundedRect) {
            Frame = new CGRect (UIScreen.MainScreen.Bounds.Width / 2 - 100, UIScreen.MainScreen.Bounds.Height / 2 - 50, 200, 100),
            BackgroundColor = UIColor.Orange,
            TintColor = UIColor.Black
             };
             _takePictureButton.SetTitle ("Take Picture", UIControlState.Normal);
             _takePictureButton.Layer.CornerRadius = 10;
             View.Add (_takePictureButton);

             _takePictureButton.AddGestureRecognizer (new UITapGestureRecognizer (() =>
             {
            Camera.TakePicture (new WeakReference (this), (info) =>
            {
               UIImage initialImage = info.ValueForKey (UIImagePickerController.OriginalImage) as UIImage;
               NSData imageData = initialImage.AsJPEG ();
               string encodedImage = imageData.GetBase64EncodedData (NSDataBase64EncodingOptions.None).ToString ();

               NavigationController.ShowViewController (new BCroppableViewController (encodedImage), this);
            });
             }));
        }
Exemple #2
0
        public void LoadSample()
        {
            overlayTags.Alpha  = 0.0f;
            overlayTags.Hidden = false;
            codeVisited        = false;

            if (sample != null && sample.IsDescendantOfView(this.View))
            {
                if (sample.OptionView != null)
                {
                    sample.OptionView.RemoveFromSuperview();
                    sample.OptionView.Dispose();
                    sample.OptionView = null;
                }

                foreach (UIView view in sample.Subviews)
                {
                    view.RemoveFromSuperview();
                    view.Dispose();
                }

                sample.RemoveFromSuperview();
                sample.Dispose();
            }

            Control control = SamplesCollection.GetItem <Control>((nuint)indexPath.Row);

            ControlName      = control.ControlName;
            sampleNameToLoad = control.name;
            tag = control.tag;

            if (control.tag == "NEW")
            {
                overlayTags.Text = " New Sample";
            }
            else if (control.tag == "UPDATED")
            {
                overlayTags.Text = " Updated Sample";
            }
            else
            {
                overlayTags.Hidden = true;
            }

            NSString dispName = control.dispName;

            this.Title = (dispName != null && dispName != "") ? dispName : sampleNameToLoad;

            sampleNameToLoad = sampleNameToLoad.Replace(" ", "");

            string classname = "SampleBrowser." + sampleNameToLoad;

            if (sampleNameToLoad == "100% Stacked Area")
            {
                classname = "SampleBrowser.StackingArea100";
            }
            else if (sampleNameToLoad == "100% Stacked Column")
            {
                classname = "SampleBrowser.StackingColumn100";
            }
            else if (sampleNameToLoad == "100% Stacked Bar")
            {
                classname = "SampleBrowser.StackingBar100";
            }

            if (classname == "SampleBrowser.CustomizationKanban")
            {
                this.NavigationController.NavigationBar.BarTintColor = UIColor.FromRGB(211.0f / 255.0f, 51.0f / 255.0f, 54.0f / 255.0f);
            }
            else
            {
                this.NavigationController.NavigationBar.BarTintColor = Utility.themeColor;
            }

            Type sampleClass = Type.GetType(classname);

            if (sampleClass != null)
            {
                sample = Activator.CreateInstance(sampleClass) as SampleView;

                sample.RemoveFromSuperview();

                this.View.AddSubview(sample);

                this.NavigationItem.RightBarButtonItems = null;

                this.View.AddSubview(sample);

                this.View.AddSubview(fadeOutView);
                fadeOutView.Hidden = true;

                if (sample.OptionView != null)
                {
                    if (!Utility.IsIpad)
                    {
                        optionView       = new UIView();
                        optionView.Frame = new CGRect(0, this.View.Bounds.Height, this.View.Bounds.Width, this.View.Bounds.Height / 1.5);

                        UIMarginLabel title = new UIMarginLabel();
                        title.Text            = "PROPERTIES";
                        title.Insets          = new UIEdgeInsets(0, 20, 0, 0);
                        title.Frame           = new CGRect(0, 0, this.View.Frame.Size.Width, 50);
                        title.BackgroundColor = UIColor.Clear;
                        optionView.AddSubview(title);

                        UIButton close = new UIButton();
                        close.SetTitleColor(UIColor.FromRGB(45.0f / 255.0f, 45.0f / 255.0f, 45.0f / 255.0f), UIControlState.Normal);
                        close.BackgroundColor = UIColor.FromRGBA(1, 1, 1, 0.95f);
                        close.SetTitle("X", UIControlState.Normal);
                        close.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
                        close.VerticalAlignment   = UIControlContentVerticalAlignment.Center;
                        close.TouchUpInside      += (object sender, EventArgs e) =>
                        {
                            this.View.EndEditing(true);
                            HideOptionView();
                        };
                        close.Frame = new CGRect(this.View.Frame.Width - 45, 0, 45, 45);
                        optionView.AddSubview(close);
                        UITapGestureRecognizer singleFingerTap = new UITapGestureRecognizer();
                        singleFingerTap.AddTarget(() => HandleSingleTap(singleFingerTap));
                        close.AddGestureRecognizer(singleFingerTap);

                        sample.OptionView.Frame = new CGRect(0, 40, optionView.Frame.Width, optionView.Frame.Height - 30);
                        optionView.AddSubview(sample.OptionView);

                        optionView.BackgroundColor = UIColor.FromRGBA(1, 1, 1, 0.95f);

                        if (control.ControlName != "DataGrid" && control.ControlName != "DataSource")
                        {
                            UITapGestureRecognizer tap = new UITapGestureRecognizer();
                            tap.AddTarget(() => HideKeyboard(tap));
                            optionView.AddGestureRecognizer(tap);
                        }

                        this.View.AddSubview(optionView);
                    }
                    else
                    {
                        optionView = sample.OptionView;
                    }


                    this.NavigationItem.SetRightBarButtonItems(new UIBarButtonItem[] { optionButton, codeViewButton }, true);
                }
                else
                {
                    this.NavigationItem.SetRightBarButtonItem(codeViewButton, true);
                }
            }

            UIView.Animate(0.5, 0, UIViewAnimationOptions.CurveLinear, () =>
            {
                overlayTags.Alpha = 1.0f;
            },
                           () =>
            {
                UIView.Animate(3.0, () =>
                {
                    overlayTags.Alpha = 0.0f;
                });
            }
                           );
        }
Exemple #3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            using (var data = NSData.FromFile("picture.jpg"))
            {
                startImage = UIImage.LoadFromData(data);
                ratio      = startImage.Size.Width / startImage.Size.Height;
                height     = (App.ScreenWidth) / ratio;
                center     = (App.ScreenHeight - height) / 2;
                width      = App.ScreenWidth;
                UIGraphics.BeginImageContextWithOptions(new CGSize(App.ScreenWidth, App.ScreenHeight), true, 1.0f);
                startImage.Draw(new CGRect(0, center, width, height));
                resultImage = UIGraphics.GetImageFromCurrentImageContext();
                UIGraphics.EndImageContext();


                var testh2 = resultImage.Size.Height;
                var testw2 = resultImage.Size.Width;
                cropperView = new CropperView();
                var test = new UIImageView(new CGRect(0, 0, App.ScreenWidth, App.ScreenHeight));
                test.Image            = resultImage;
                imageViewToMove       = new ImageViewToMove();
                imageViewToMove.Frame = test.Frame;
                cropperView.Frame     = View.Frame;
                var h = (App.ScreenWidth * 0.9);
                if (h > height)
                {
                    h = height - 10;
                }
                cropperView.CropSize = new CGSize(h, h);
                cropperView.Origin   = new CGPoint((App.ScreenWidth - h) / 2, center + ((height - h) / 2));

                imageViewToMove.ImgX          = 0;
                imageViewToMove.ImgY          = 0;
                imageViewToMove.ImgW          = App.ScreenWidth;
                imageViewToMove.ImgH          = App.ScreenHeight;
                imageViewToMove.ImageViewCrop = test;
            }
            var centerButtonX = View.Bounds.GetMidX() - 35f;
            var bottomButtonY = View.Bounds.Bottom - 70;
            var btn           = new UIButton()
            {
                Frame = new CGRect(0, bottomButtonY, App.ScreenWidth / 2, 70)
            };

            btn.BackgroundColor = UIColor.FromRGB(219, 179, 74);
            btn.SetTitle("Done", UIControlState.Normal);
            btn.SetTitleColor(UIColor.White, UIControlState.Normal);

            View.AddSubviews(imageViewToMove, cropperView, btn);
            View.BackgroundColor = UIColor.Black;
            nfloat dx = 0;
            nfloat dy = 0;

            pan1 = new UIPanGestureRecognizer(() =>
            {
                if ((pan1.State == UIGestureRecognizerState.Began ||
                     pan1.State == UIGestureRecognizerState.Changed) && (pan1.NumberOfTouches == 1))
                {
                    var p0 = pan1.LocationInView(View);

                    if (dx == 0)
                    {
                        dx = p0.X - (nfloat)imageViewToMove.ImgX;
                    }

                    if (dy == 0)
                    {
                        dy = p0.Y - (nfloat)imageViewToMove.ImgY;
                    }
                    imageViewToMove.ImgX          = p0.X - dx;
                    imageViewToMove.ImgY          = p0.Y - dy;
                    var test                      = new UIImageView(new CGRect(imageViewToMove.ImgX, imageViewToMove.ImgY, imageViewToMove.ImgW, imageViewToMove.ImgH));
                    test.Image                    = resultImage;
                    imageViewToMove.ImageViewCrop = test;
                }
                else if (pan1.State == UIGestureRecognizerState.Ended)
                {
                    dx = 0;
                    dy = 0;
                }
            });

            nfloat s0 = 1;

            pinch1 = new UIPinchGestureRecognizer(() =>
            {
                nfloat s         = pinch1.Scale;
                nfloat ds        = (nfloat)Math.Abs(s - s0);
                nfloat sf        = 0;
                const float rate = 0.5f;
                if (s >= s0)
                {
                    sf = 1 + ds * rate;
                }
                else if (s < s0)
                {
                    sf = 1 - ds * rate;
                }
                s0 = s;
                imageViewToMove.ImgW = imageViewToMove.ImgW * sf;
                imageViewToMove.ImgH = imageViewToMove.ImgH * sf;
                imageViewToMove.ImgX = imageViewToMove.ImgX * sf;
                imageViewToMove.ImgY = imageViewToMove.ImgY * sf;
                height     = height * sf;
                center     = center * sf;
                var test   = new UIImageView(new CGRect(imageViewToMove.ImgX, imageViewToMove.ImgY, imageViewToMove.ImgW, imageViewToMove.ImgH));
                test.Image = resultImage;
                imageViewToMove.ImageViewCrop = test;
                if (pinch1.State == UIGestureRecognizerState.Ended)
                {
                    s0 = 1;
                }
            });

            doubleTap = new UITapGestureRecognizer((gesture) => Crop())
            {
            };


            btn.AddGestureRecognizer(doubleTap);
            cropperView.AddGestureRecognizer(pan1);
            cropperView.AddGestureRecognizer(pinch1);
        }
        UIView GetItemView(SerializationModel model, CGRect frame)
        {
            UIButton    button    = new UIButton(frame);
            UIImageView imageView = new UIImageView(new CGRect(0, 5, frame.Width, frame.Height - 20));

            imageView.Alpha           = 1f;
            imageView.Image           = model.Image;
            imageView.BackgroundColor = model.ImageBackgroundColor;
            imageView.ContentMode     = model.ImageAlignment;
            button.AddSubview(imageView);

            UILabel label = new UILabel();

            if (model.Name != "Create New")
            {
                label.Frame           = new CGRect(0, frame.Height - 40, frame.Width, 25);
                label.Alpha           = 0.5f;
                label.BackgroundColor = UIColor.LightGray;
                if (model.IsImageSelected)
                {
                    UIImageView SelectedView = new UIImageView(new CGRect(frame.Width - 25, 10, 20, 20));
                    if (!model.IsItemSelectedToDelete)
                    {
                        SelectedView.Image = UIImage.FromBundle("Images/ImageEditor/NotSelected.png");
                        imageView.Alpha    = 1f;
                    }
                    else
                    {
                        SelectedView.Image = UIImage.FromBundle("Images/ImageEditor/Selected.png");
                        imageView.Alpha    = 0.3f;
                    }
                    SelectedView.BackgroundColor = UIColor.Clear;
                    SelectedView.ContentMode     = UIViewContentMode.ScaleAspectFit;
                    button.AddSubview(SelectedView);
                }
            }
            else
            {
                if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
                {
                    label.Frame = new CGRect(0, frame.Height / 2 + 50, frame.Width, 25);
                }
                else
                {
                    label.Frame = new CGRect(0, frame.Height / 2 + 20, frame.Width, 25);
                }
                label.Alpha           = 1f;
                label.BackgroundColor = UIColor.Clear;
                label.TextColor       = UIColor.White;
            }

            label.Font          = UIFont.SystemFontOfSize(18);
            label.TextAlignment = UITextAlignment.Center;
            label.Text          = model.Name;
            button.AddSubview(label);
            UILongPressGestureRecognizer detector = new UILongPressGestureRecognizer((UILongPressGestureRecognizer obj) =>
            {
                OnLongPressed(this, model);
            });

            button.AddGestureRecognizer(detector);
            button.TouchUpInside += (sender, e) =>
            {
                OnItemSelected(this, model);
            };

            return(button);
        }