示例#1
0
        AImageButton CreateImageButton(Context context, BindableObject bindable, BindableProperty property, int defaultImage, int leftMargin, int rightMargin, string tag)
        {
            var result = new AImageButton(context);

            result.Tag = tag;
            result.SetPadding(0, 0, 0, 0);
            result.Focusable = false;
            result.SetScaleType(ImageView.ScaleType.FitCenter);

            if (bindable.GetValue(property) is ImageSource image)
            {
                AutomationPropertiesProvider.SetContentDescription(result, image, null, null);
            }

            ((ImageSource)bindable.GetValue(property)).LoadImage(MauiContext, (r) =>
            {
                result.SetImageDrawable(r?.Value);
            });

            var lp = new LinearLayout.LayoutParams((int)Context.ToPixels(22), LP.MatchParent)
            {
                LeftMargin  = leftMargin,
                RightMargin = rightMargin
            };

            result.LayoutParameters = lp;
            lp.Dispose();
            result.SetBackground(null);

            return(result);
        }
示例#2
0
 async void SetImage(AImageButton button, ImageSource image, int defaultValue)
 {
     button.SetScaleType(ImageView.ScaleType.FitCenter);
     if (image != null)
     {
         using (var drawable = await Context.GetFormsDrawable(image))
             button.SetImageDrawable(drawable);
     }
     else if (defaultValue > 0)
     {
         await Task.Run(() => button.SetImageResource(defaultValue)).ConfigureAwait(false);
     }
     else
     {
         button.SetImageDrawable(null);
     }
 }
示例#3
0
        AImageButton CreateImageButton(Context context, BindableObject bindable, BindableProperty property, int defaultImage, int leftMargin, int rightMargin, string tag)
        {
            var result = new AImageButton(context);

            result.Tag = tag;
            result.SetPadding(0, 0, 0, 0);
            result.Focusable = false;
            result.SetScaleType(ImageView.ScaleType.FitCenter);

            string defaultHint        = null;
            string defaultDescription = null;

            if (bindable.GetValue(property) is ImageSource image)
            {
                AutomationPropertiesProvider.SetContentDescription(result, image, ref defaultDescription, ref defaultHint);
            }

            _shellContext.ApplyDrawableAsync(bindable, property, drawable =>
            {
                if (drawable != null)
                {
                    result.SetImageDrawable(drawable);
                }
                else if (defaultImage > 0)
                {
                    result.SetImageResource(defaultImage);
                }
                else
                {
                    result.SetImageDrawable(null);
                }
            });
            var lp = new LinearLayout.LayoutParams((int)Context.ToPixels(22), LP.MatchParent)
            {
                LeftMargin  = leftMargin,
                RightMargin = rightMargin
            };

            result.LayoutParameters = lp;
            lp.Dispose();
            result.SetBackground(null);

            return(result);
        }
示例#4
0
            public MenuElementView(Context context) : base(context)
            {
                Orientation = Orientation.Vertical;
                _image      = new AImageButton(context);
                _image.SetScaleType(ImageView.ScaleType.FitCenter);
                _image.Click += (object sender, EventArgs e) =>
                {
                    if (OnSelected != null)
                    {
                        OnSelected();
                    }
                };
                AddView(_image, new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
                {
                    Gravity = GravityFlags.Center
                });

                _label = new TextView(context)
                {
                    TextAlignment = global::Android.Views.TextAlignment.Center, Gravity = GravityFlags.Center
                };
                AddView(_label, new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent));
            }