Drawable SetLeftImage(MyPickerRenderer myPickerRenderer) { if (myPickerRenderer.SourceImageLeft != "") { Drawable image = null; try { image = Resources.GetDrawable(myPickerRenderer.SourceImageLeft).Mutate(); } catch { ImageView ima = new ImageView(Context); var imageBitmap = GetImageBitmapFromUrl(myPickerRenderer.SourceImageLeft); ima.SetImageBitmap(imageBitmap); image = ima.Drawable; } if (image != null) { if (myPickerRenderer.ImageLeftColor != Color.Transparent) { image.SetColorFilter(myPickerRenderer.ImageLeftColor.ToAndroid(), PorterDuff.Mode.SrcIn); } image.SetBounds((int)myPickerRenderer.BoundsImageLeft.X + 5, (int)myPickerRenderer.BoundsImageLeft.Y, (int)myPickerRenderer.BoundsImageLeft.Width * 2, (int)myPickerRenderer.BoundsImageLeft.Height * 2); } return(image); } return(null); }
void SetDrawable(MyPickerRenderer myPickerRenderer) { var gradientDrawable = new GradientDrawable(); gradientDrawable.SetColor(myPickerRenderer.StaticColor.ToAndroid()); switch (myPickerRenderer.TypeBorder) { case TypeBorder.All: gradientDrawable.SetCornerRadii(new float[] { 80, 80, 80, 80, 80, 80, 80, 80 }); break; case TypeBorder.Left: gradientDrawable.SetCornerRadii(new float[] { 80, 80, 0, 0, 0, 0, 80, 80 }); break; case TypeBorder.Right: gradientDrawable.SetCornerRadii(new float[] { 0, 0, 80, 80, 80, 80, 0, 0 }); break; case TypeBorder.Down: gradientDrawable.SetCornerRadii(new float[] { 0, 0, 0, 0, 80, 80, 80, 80 }); break; case TypeBorder.Up: gradientDrawable.SetCornerRadii(new float[] { 80, 80, 80, 80, 0, 0, 0, 0 }); break; } Control.SetBackground(gradientDrawable); }
private void setBorder() { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; Control.Layer.BorderWidth = 0; Control.BorderStyle = UITextBorderStyle.None; Control.BackgroundColor = myPickerRenderer.StaticColor.ToUIColor(); Control.TextColor = myPickerRenderer.TextColor.ToUIColor(); }
/* * private void setLeftImage(MyPickerRenderer myPickerRenderer) * { * if (myPickerRenderer.SourceImageLeft != "") * { * CGRect cGRect = new CGRect(myPickerRenderer.BoundsImageLeft.X, myPickerRenderer.BoundsImageLeft.Y, * myPickerRenderer.BoundsImageLeft.Width + 20, myPickerRenderer.BoundsImageLeft.Height); * var view = new UIView(cGRect); * var imageView = new UIImageView(); * UIImage image = null; * try * { * image = new UIImage(myPickerRenderer.SourceImageLeft); * } * catch * { * //image = UIImageFromUrl("https://imgappgyg.s3-sa-east-1.amazonaws.com/" + myPickerRenderer.SourceImageLeft); * if (UIImageFromUrl("https://imgappgyg.s3-sa-east-1.amazonaws.com/" + myPickerRenderer.SourceImageLeft + ".png", myPickerRenderer.SourceImageLeft)) * { * setLeftImage(myPickerRenderer); * } * } * if (image != null) * { * if (myPickerRenderer.ImageLeftColor != Color.Transparent) * { * imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); * imageView.TintColor = (myPickerRenderer.ImageLeftColor.ToUIColor()); * } * else * { * imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); * } * CGRect cGRectImage = new CGRect(myPickerRenderer.BoundsImageLeft.X + 10, myPickerRenderer.BoundsImageLeft.Y, * myPickerRenderer.BoundsImageLeft.Width, myPickerRenderer.BoundsImageLeft.Height); * imageView.Frame = cGRectImage; * view.AddSubview(imageView); * Control.LeftView = view; * Control.LeftViewMode = UITextFieldViewMode.Always; * } * * } * } */ private void setLeftImage(MyPickerRenderer myPickerRenderer) { if (myPickerRenderer.SourceImageLeft != "") { CGRect cGRect = new CGRect(myPickerRenderer.BoundsImageLeft.X, myPickerRenderer.BoundsImageLeft.Y, myPickerRenderer.BoundsImageLeft.Width + 20, myPickerRenderer.BoundsImageLeft.Height); var view = new UIView(cGRect); var imageView = new UIImageView(); UIImage image = UIImage.FromFile(myPickerRenderer.SourceImageLeft); if (image == null) { string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); String fileName = Path.Combine(path, "images", myPickerRenderer.SourceImageLeft); image = UIImage.FromFile(@fileName); } if (image != null) { if (myPickerRenderer.ImageLeftColor != Color.Transparent) { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); imageView.TintColor = (myPickerRenderer.ImageLeftColor.ToUIColor()); } else { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); } CGRect cGRectImage = new CGRect(myPickerRenderer.BoundsImageLeft.X + 10, myPickerRenderer.BoundsImageLeft.Y, myPickerRenderer.BoundsImageLeft.Width, myPickerRenderer.BoundsImageLeft.Height); imageView.Frame = cGRectImage; view.AddSubview(imageView); Control.LeftView = view; Control.LeftViewMode = UITextFieldViewMode.Always; } else { if (UIImageFromUrl("https://imgappgyg.s3-sa-east-1.amazonaws.com/" + myPickerRenderer.SourceImageLeft + ".png", myPickerRenderer.SourceImageLeft)) { setLeftImage(myPickerRenderer); } else { Control.LeftView = new UIView(new CGRect(0, 0, 20, 0)); Control.LeftViewMode = UITextFieldViewMode.Always; } } } else { Control.LeftView = new UIView(new CGRect(0, 0, 20, 0)); Control.LeftViewMode = UITextFieldViewMode.Always; } }
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName.Equals(MyPickerRenderer.SourceImageLeftProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; Drawable imageLeft = null; if (myPickerRenderer.SourceImageLeft != "") { ImageView ima = new ImageView(Context); var imageBitmap = GetImageBitmapFromUrl(myPickerRenderer.SourceImageLeft); ima.SetImageBitmap(imageBitmap); imageLeft = ima.Drawable; if (myPickerRenderer.ImageLeftColor != Color.Transparent) { imageLeft.SetColorFilter(myPickerRenderer.ImageLeftColor.ToAndroid(), PorterDuff.Mode.SrcIn); } imageLeft.SetBounds((int)myPickerRenderer.BoundsImageLeft.X + 5, (int)myPickerRenderer.BoundsImageLeft.Y, (int)myPickerRenderer.BoundsImageLeft.Width * 2, (int)myPickerRenderer.BoundsImageLeft.Height * 2); } Control.SetCompoundDrawables(imageLeft, Control.GetCompoundDrawables()[1], Control.GetCompoundDrawables()[2], Control.GetCompoundDrawables()[3]); } else if (e.PropertyName.Equals(MyPickerRenderer.StaticColorProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; GradientDrawable gradientDrawable = (GradientDrawable)Control.Background; if (gradientDrawable != null) { gradientDrawable.SetColor(myPickerRenderer.StaticColor.ToAndroid()); } } else if (e.PropertyName.Equals(MyPickerRenderer.ImageLeftColorProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; Drawable drawable = (Drawable)Control.GetCompoundDrawables()[0]; if (drawable != null) { drawable.SetColorFilter(myPickerRenderer.ImageLeftColor.ToAndroid(), PorterDuff.Mode.SrcIn); } } else if (e.PropertyName.Equals(MyPickerRenderer.ImageRightColorProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; Drawable drawable = (Drawable)Control.GetCompoundDrawables()[2]; if (drawable != null) { drawable.SetColorFilter(myPickerRenderer.ImageRightColor.ToAndroid(), PorterDuff.Mode.SrcIn); } } }
protected override void OnElementChanged(ElementChangedEventArgs <Picker> e) { base.OnElementChanged(e); if (e.OldElement == null) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; TypeBorder = myPickerRenderer.TypeBorder; setBorder(); setPosition(myPickerRenderer); setLeftImage(myPickerRenderer); setRightImage(myPickerRenderer); } }
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName.Equals(MyPickerRenderer.SourceImageLeftProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; if (myPickerRenderer.SourceImageLeft != "") { setLeftImage(myPickerRenderer); } } if (e.PropertyName.Equals(MyPickerRenderer.StaticColorProperty.PropertyName)) { MyPickerRenderer myEntryRenderer = (MyPickerRenderer)Element; Control.BackgroundColor = myEntryRenderer.StaticColor.ToUIColor(); } if (e.PropertyName.Equals(MyPickerRenderer.ImageLeftColorProperty.PropertyName)) { MyPickerRenderer myEntryRenderer = (MyPickerRenderer)Element; if (!(myEntryRenderer.SourceImageLeft == "")) { UIImageView uIImageView = (UIImageView)Control.LeftView.Subviews[0]; if (uIImageView != null) { uIImageView.TintColor = (myEntryRenderer.ImageLeftColor.ToUIColor()); } } } if (e.PropertyName.Equals(MyPickerRenderer.ImageRightColorProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; try { UIImageView uIImageView = (UIImageView)Control.RightView.Subviews[0]; uIImageView.TintColor = (myPickerRenderer.ImageRightColor.ToUIColor()); } catch { } } if (e.PropertyName.Equals(MyPickerRenderer.IsEnabledProperty.PropertyName)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; if (!myPickerRenderer.IsEnabled) { Control.TextColor = myPickerRenderer.TextColor.ToUIColor(); } } }
private void setPosition(MyPickerRenderer myPickerRenderer) { switch (myPickerRenderer.Position) { case Position.Center: Control.TextAlignment = UIKit.UITextAlignment.Center; break; case Position.Right: Control.TextAlignment = UIKit.UITextAlignment.Right; break; case Position.Left: Control.TextAlignment = UIKit.UITextAlignment.Left; break; } }
void SetPosition(MyPickerRenderer myPickerRenderer) { switch (myPickerRenderer.Position) { case Position.Center: Control.Gravity = GravityFlags.Center; break; case Position.Left: Control.Gravity = GravityFlags.Left; break; case Position.Right: Control.Gravity = GravityFlags.Right; break; } }
protected override void OnElementChanged(ElementChangedEventArgs <Picker> e) { base.OnElementChanged(e); if ((Control != null) && (e.OldElement == null)) { MyPickerRenderer myPickerRenderer = (MyPickerRenderer)Element; SetPosition(myPickerRenderer); SetDrawable(myPickerRenderer); Drawable imageLeft = SetLeftImage(myPickerRenderer); Drawable imageRight = SetRightImage(myPickerRenderer); Control.SetCompoundDrawables(imageLeft, null, imageRight, null); Control.SetPadding(Control.PaddingLeft + 20, Control.PaddingTop, Control.PaddingRight + 20, Control.PaddingBottom); Control.CompoundDrawablePadding = 20; } }
Drawable SetRightImage(MyPickerRenderer myPickerRenderer) { if (myPickerRenderer.SourceImageRight != "") { Drawable image = Context.GetDrawable(myPickerRenderer.SourceImageRight); if (image != null) { if (myPickerRenderer.ImageRightColor != Color.Transparent) { image.SetColorFilter(myPickerRenderer.ImageRightColor.ToAndroid(), PorterDuff.Mode.SrcIn); } image.SetBounds((int)myPickerRenderer.BoundsImageRight.X + 5, (int)myPickerRenderer.BoundsImageRight.Y, (int)myPickerRenderer.BoundsImageRight.Width * 2, (int)myPickerRenderer.BoundsImageRight.Height * 2); } return(image); } return(null); }
private void setRightImage(MyPickerRenderer myPickerRenderer) { if (myPickerRenderer.SourceImageRight != "") { CGRect cGRect = new CGRect(myPickerRenderer.BoundsImageRight.X, myPickerRenderer.BoundsImageRight.Y, myPickerRenderer.BoundsImageRight.Width + 20, myPickerRenderer.BoundsImageRight.Height); var view = new UIView(cGRect); var imageView = new UIImageView(); UIImage image = null; try { image = new UIImage(myPickerRenderer.SourceImageRight); } catch { //image = UIImageFromUrl("https://imgappgyg.s3-sa-east-1.amazonaws.com/" + myPickerRenderer.SourceImageRight); if (UIImageFromUrl("https://imgappgyg.s3-sa-east-1.amazonaws.com/" + myPickerRenderer.SourceImageLeft + ".png", myPickerRenderer.SourceImageLeft)) { setRightImage(myPickerRenderer); } } if (image != null) { if (myPickerRenderer.ImageRightColor != Color.Transparent) { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); imageView.TintColor = (myPickerRenderer.ImageRightColor.ToUIColor()); } else { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); } CGRect cGRectImage = new CGRect(myPickerRenderer.BoundsImageRight.X + 10, myPickerRenderer.BoundsImageRight.Y, myPickerRenderer.BoundsImageRight.Width, myPickerRenderer.BoundsImageRight.Height); imageView.Frame = cGRectImage; view.AddSubview(imageView); Control.RightView = view; Control.RightViewMode = UITextFieldViewMode.Always; } } }
public override void Draw(CGRect rect) { MyPickerRenderer myEntryRenderer = (MyPickerRenderer)Element; if (myEntryRenderer.IsGradient) { Control.BackgroundColor = UIColor.Clear; var gradientLayer = new CAGradientLayer { Frame = rect, Colors = new CGColor[] { myEntryRenderer.StartColor.ToCGColor(), myEntryRenderer.EndColor.ToCGColor() } }; gradientLayer.EndPoint = new CGPoint(1.0, 0.5); gradientLayer.StartPoint = new CGPoint(0, 0.5); Control.Layer.AddSublayer(gradientLayer); } else { Control.BackgroundColor = myEntryRenderer.StaticColor.ToUIColor(); } }