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); }); })); }
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; }); } ); }
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); }