コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        /*
         * 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;
            }
        }
コード例 #5
0
 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);
         }
     }
 }
コード例 #6
0
 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);
     }
 }
コード例 #7
0
 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();
         }
     }
 }
コード例 #8
0
        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;
            }
        }
コード例 #9
0
        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;
            }
        }
コード例 #10
0
        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;
            }
        }
コード例 #11
0
 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);
 }
コード例 #12
0
 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;
         }
     }
 }
コード例 #13
0
        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();
            }
        }