Exemplo n.º 1
0
        private Drawable Wrap(Drawable drb, int tint)
        {
            var compat = DrawableCompat.Wrap(drb);

            DrawableCompat.SetTint(compat, tint);
            return(compat);
        }
Exemplo n.º 2
0
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);

            if (setup)
            {
                return;
            }

            if (e.PropertyName == "Renderer")
            {
                var layout = (TabLayout)ViewGroup.GetChildAt(1);
                setup = true;
                var            iconTab = Resource.Drawable.icon_tab;
                ColorStateList colors  = Build.VERSION.SdkInt >= BuildVersionCodes.M ?
                                         Resources.GetColorStateList(iconTab, MainApplication.CurrentContext.Theme) :
                                         Resources.GetColorStateList(Resource.Drawable.icon_tab);
                layout.SetBackgroundColor(Color.White.ToAndroid());
                for (int i = 0; i < layout.TabCount; i++)
                {
                    var tab  = layout.GetTabAt(i);
                    var icon = tab.Icon;
                    if (icon != null)
                    {
                        icon = DrawableCompat.Wrap(icon);
                        DrawableCompat.SetTintList(icon, colors);
                    }
                }
            }
        }
Exemplo n.º 3
0
        protected override ProgressBar CreateNativeControl()
        {
            pBarBackDrawable = DrawableCompat.Wrap(Resources.GetDrawable("CircularProgress_background"));
            pBarForeDrawable = DrawableCompat.Wrap(Resources.GetDrawable("CircularProgress_drawable"));

            DrawableCompat.SetTint(pBarBackDrawable, Element.BackColor.ToAndroid());
            DrawableCompat.SetTint(pBarForeDrawable, Element.ForeColor.ToAndroid());

            var nativeControl = new ProgressBar(this.Context, null, global::Android.Resource.Attribute.ProgressBarStyleHorizontal)
            {
                Indeterminate    = false,
                Max              = Element.Maximun,
                ProgressDrawable = pBarForeDrawable,
                Rotation         = -90f,
                LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent),
            };

            if (Android.OS.Build.VERSION.SdkInt < Android.OS.BuildVersionCodes.Kitkat)
            {
                nativeControl.SetBackgroundDrawable(pBarBackDrawable);
            }
            else
            {
                nativeControl.SetBackground(pBarBackDrawable);
            }

            return(nativeControl);
        }
Exemplo n.º 4
0
        protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.Button> e)
        {
            base.OnElementChanged(e);

            if (Android.OS.Build.VERSION.SdkInt <= Android.OS.BuildVersionCodes.Kitkat)
            {
                return;
            }

            if (e.OldElement != null)
            {
                btn.Click -= Btn_Click;
            }

            if (e.NewElement != null)
            {
                btn        = new AppCompatButton(base.Context);
                btn.Click += Btn_Click;

                btn.Enabled = Element.IsEnabled;

                if (((MaterialButton)Element).IsFlat)
                {
                    btn.StateListAnimator = new Android.Animation.StateListAnimator();
                }

                Drawable drawable = DrawableCompat.Wrap(btn.Background);
                DrawableCompat.SetTint(drawable.Mutate(), Element.BackgroundColor.ToAndroid());

                SetNativeControl(btn);

                SetTextColor(btn.Enabled);
            }
        }
            public void OnLoadStickerCategory(View icon, IStickerCategory stickerCategory, bool selected)
            {
                try
                {
                    var image = (ImageView)icon;
                    if (image != null)
                    {
                        if (stickerCategory is ShopStickers shopStickers)
                        {
                            Drawable dr0 = AppCompatResources.GetDrawable(icon.Context, (int)shopStickers.CategoryData);
                            Drawable dr  = dr0.GetConstantState()?.NewDrawable();
                            if (selected)
                            {
                                DrawableCompat.SetTint(DrawableCompat.Wrap(dr), AXEmojiManager.EmojiViewTheme.SelectedColor);
                            }
                            else
                            {
                                DrawableCompat.SetTint(DrawableCompat.Wrap(dr), AXEmojiManager.EmojiViewTheme.DefaultColor);
                            }

                            image?.SetImageDrawable(dr);
                        }
                        else
                        {
                            Glide.With(icon).Load(Integer.ValueOf(stickerCategory.CategoryData.ToString())).Apply(RequestOptions.FitCenterTransform()).Into(image);
                        }
                    }
                }
                catch (Exception e)
                {
                    Methods.DisplayReportResultTrack(e);
                }
            }
Exemplo n.º 6
0
        void ApplyMinTrackTintColor(string propertyName)
        {
            if (propertyName == null || propertyName == SliderGloss.MinTrackTintColorProperty.PropertyName)
            {
                var minTrackTintColor = (Color)Element.GetValue(SliderGloss.MinTrackTintColorProperty);
                // Skip assigning anything if all properties are being applied and the color is set to the default value
                if (propertyName != null || minTrackTintColor != Color.Default)
                {
                    var aMinTrackTintColor = (minTrackTintColor == Color.Default) ?
                                             ThemeUtil.IntToColor(ThemeUtil.ColorAccent(Control.Context,
                                                                                        ThemeUtil.DefaultColorControlTrackActivated)) :
                                             minTrackTintColor.ToAndroid();

                    if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
                    {
                        // FYI: Lollipop (API 21) has a broken implementation for the ProgressTintList property.
                        // Assigning a value to the property causes the entire track to be colored with the assigned
                        // value, instead of just the track to the left of the thumb. It works as expected on API 22+.
                        Control.ProgressTintList = ColorStateList.ValueOf(aMinTrackTintColor);
                    }
                    else if (XFGloss.Droid.Library.UsingAppCompat)
                    {
                        DrawableCompat.SetTint(DrawableCompat.Wrap(Control.ProgressDrawable), aMinTrackTintColor);
                        // We also have to explicitly set the MaxTrackTintColor to either the specified custom color or
                        // the default color. Otherwise, setting the MinTrackTintColor tints both the left and right
                        // sides of the track
                        ApplyMaxTrackTintColor(null, true);
                    }
                    else
                    {
                        Console.WriteLine(XFGloss.Droid.Library.appCompatWarning);
                    }
                }
            }
        }
Exemplo n.º 7
0
        public static Drawable TintDrawable(this Drawable drawable, Color color)
        {
            drawable = DrawableCompat.Wrap(drawable);
            DrawableCompat.SetTint(drawable.Mutate(), color);

            return(drawable);
        }
Exemplo n.º 8
0
        void ApplyThumbTintColor(string propertyName)
        {
            if (propertyName == null || propertyName == SliderGloss.ThumbTintColorProperty.PropertyName)
            {
                var thumbTintColor = (Color)Element.GetValue(SliderGloss.ThumbTintColorProperty);
                // Skip assigning anything if all properties are being applied and the color is set to the default value
                if (propertyName != null || thumbTintColor != Color.Default)
                {
                    var aThumbTintColor = (thumbTintColor == Color.Default) ?
                                          ThemeUtil.IntToColor(ThemeUtil.ColorAccent(Control.Context,
                                                                                     ThemeUtil.DefaultColorControlThumb)) :
                                          thumbTintColor.ToAndroid();

                    if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
                    {
                        Control.ThumbTintList = ColorStateList.ValueOf(aThumbTintColor);
                    }
                    else if (XFGloss.Droid.Library.UsingAppCompat)
                    {
                        DrawableCompat.SetTint(DrawableCompat.Wrap(Control.Thumb), aThumbTintColor);
                    }
                    else
                    {
                        Console.WriteLine(XFGloss.Droid.Library.appCompatWarning);
                    }
                }
            }
        }
Exemplo n.º 9
0
        Drawable TintDrawable(Drawable drawable, int tint)
        {
            Drawable tintedDrawable = DrawableCompat.Wrap(drawable);

            DrawableCompat.SetTint(tintedDrawable, tint);
            return(tintedDrawable);
        }
Exemplo n.º 10
0
 public void OnPageChanged(AXEmojiPager emojiPager, AXEmojiBase @base, int position)
 {
     try
     {
         Drawable drawable;
         if (AXEmojiManager.IsAXEmojiView(@base))
         {
             drawable = AppCompatResources.GetDrawable(Context, Resource.Drawable.emoji_backspace);
             Utils.EnableBackspaceTouch(Footer, emojiPager.EditText);
             Footer.SetOnClickListener(null);
         }
         else
         {
             drawable = AppCompatResources.GetDrawable(Context, Resource.Drawable.ic_action_search);
             Footer.SetOnTouchListener(null);
             Footer.SetOnClickListener(this);
         }
         DrawableCompat.SetTint(DrawableCompat.Wrap(drawable), AXEmojiManager.EmojiViewTheme.FooterItemColor);
         Img.SetImageDrawable(drawable);
     }
     catch (Exception e)
     {
         Methods.DisplayReportResultTrack(e);
     }
 }
Exemplo n.º 11
0
 public static Drawable GetIconDrawable(Context context, int drawableRes, Color color)
 {
     try
     {
         var mDrawable = ContextCompat.GetDrawable(context, drawableRes);
         if (!(mDrawable is VectorDrawable) || ColoredIcons.Contains(drawableRes))
         {
             return(mDrawable);
         }
         try
         {
             var mWrappedDrawable = mDrawable.Mutate();
             mWrappedDrawable = DrawableCompat.Wrap(mWrappedDrawable);
             DrawableCompat.SetTint(mWrappedDrawable, color);
             DrawableCompat.SetTintMode(mWrappedDrawable, PorterDuff.Mode.SrcIn);
             return(mWrappedDrawable);
         }
         catch (Exception ex)
         {
             xLog.Error(ex);
             return(mDrawable);
         }
     }
     catch (Exception ex)
     {
         xLog.Error(ex);
         return(null);
     }
 }
 public static void TintMenuActionIcons(Toolbar toolbar, Color color, PorterDuff.Mode tintMode = null)
 {
     for (int i = 0; i < toolbar.Menu.Size(); i++)
     {
         var item = toolbar.Menu.GetItem(i);
         var drw  = item.Icon;
         if (drw != null)
         {
             if (tintMode != null)
             {
                 DrawableCompat.SetTintMode(drw, tintMode);
             }
             item.SetIcon(drw.GetTintedDrawable(color, true, false, true));
         }
         if (item.ActionView is global::Android.Support.V7.Widget.SearchView sv)
         {
             ImageView iv = sv.FindViewById <ImageView>(Resource.Id.search_button);
             if (iv != null)
             {
                 if (tintMode != null)
                 {
                     DrawableCompat.SetTintMode(iv.Drawable, tintMode);
                 }
                 iv.Drawable.SetDrawableTint(color);
             }
         }
     }
 }
Exemplo n.º 13
0
 public MauiPickerBase(Context context) : base(context)
 {
     if (Background != null)
     {
         DrawableCompat.Wrap(Background);
     }
 }
Exemplo n.º 14
0
        /*
         *      private void OnButtonClick(object sender, EventArgs e)
         *      {
         *          if (sender is AppCompatImageButton imgButton)
         *              Toast.MakeText(this, (string)imgButton.Tag, ToastLength.Short).Show();
         *
         *      }
         */


        private void SetUpToolbar()
        {
            // Not having raised AppBar area, so don't set SupportActionBar
            //SetSupportActionBar(_toolbar);

            // Set the page Title - Required because of the way that Android sets up app asset names
            _toolbar.Title = null;  // using the custom title so it can be centered
            SetToolbarCustomTitle(ViewModel.Response.Name);
            // Set the subtitle
            //            SetToolbarCustomSubtitle("Subtitle");
            //            _toolbar.Subtitle = "Subtitle";
            var closeIcon = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.lclose, null).Mutate();

            DrawableCompat.SetTint(closeIcon, Color.White);
            _toolbar.NavigationIcon = closeIcon;

            var toolbarColor = Constants.GetIconSettingsFromTitle(this, ViewModel.Response.Name).Item2;

            Window.SetStatusBarColor(toolbarColor);
            _toolbar.SetBackgroundColor(toolbarColor);

            // Set toolbar title colors
            _toolbar.SetTitleTextColor(Color.White);
            _toolbar.SetSubtitleTextColor(Color.White);
            SetToolbarCustomTitleColor(Color.White);
            SetToolbarCustomSubtitleColor(Color.White);
        }
Exemplo n.º 15
0
        private void UpdateButton(bool emoji)
        {
            try
            {
                if (IsShowing == emoji)
                {
                    return;
                }
                IsShowing = emoji;

                if (emoji)
                {
                    Drawable dr = AppCompatResources.GetDrawable(ActivityContext, Resource.Drawable.ic_action_keyboard);
                    DrawableCompat.SetTint(DrawableCompat.Wrap(dr), Color.Black);
                    EmojisViewImage.SetImageDrawable(dr);
                }
                else
                {
                    Drawable dr = AppCompatResources.GetDrawable(ActivityContext, Resource.Drawable.ic_action_sentiment_satisfied_alt);
                    DrawableCompat.SetTint(DrawableCompat.Wrap(dr), Color.Black);
                    EmojisViewImage.SetImageDrawable(dr);
                }
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Exemplo n.º 16
0
        protected override void OnElementChanged(ElementChangedEventArgs <SearchBar> e)
        {
            base.OnElementChanged(e);

            var searchPlateId = Control.Resources.GetIdentifier("android:id/search_plate", null, null);

            if (searchPlateId != 0)
            {
                var v = FindViewById <AView>(searchPlateId);

                v.Background.SetColorFilter(AColor.White, PorterDuff.Mode.Multiply);
            }

            var searchButtonId = Control.Resources.GetIdentifier("android:id/search_mag_icon", null, null);

            if (searchButtonId != 0)
            {
                var image = FindViewById <ImageView>(searchButtonId);

                if (image != null && image.Drawable != null)
                {
                    DrawableCompat.SetTint(image.Drawable,
                                           ContextCompat.GetColor(Context, Android.Resource.Color.White));
                }
            }
        }
Exemplo n.º 17
0
        public override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);

            mapFragment.GetMapAsync(this);

            // Setup info pane
            ipName     = pane.FindViewById <TextView> (Resource.Id.InfoViewName);
            ipName2    = pane.FindViewById <TextView> (Resource.Id.InfoViewSecondName);
            ipBikes    = pane.FindViewById <TextView> (Resource.Id.InfoViewBikeNumber);
            ipSlots    = pane.FindViewById <TextView> (Resource.Id.InfoViewSlotNumber);
            ipDistance = pane.FindViewById <TextView> (Resource.Id.InfoViewDistance);
            ipBikesImg = pane.FindViewById <ImageView> (Resource.Id.InfoViewBikeNumberImg);
            ipSlotsImg = pane.FindViewById <ImageView> (Resource.Id.InfoViewSlotNumberImg);

            if (!AndroidExtensions.IsMaterial)
            {
                bikeDrawable = DrawableCompat.Wrap(ResCompat.GetDrawable(Resources, Resource.Drawable.ic_bike, null));
                rackDrawable = DrawableCompat.Wrap(ResCompat.GetDrawable(Resources, Resource.Drawable.ic_lock, null));
            }
            else
            {
                bikeDrawable = ResCompat.GetDrawable(Resources, Resource.Drawable.ic_bike_vector, null);
                rackDrawable = ResCompat.GetDrawable(Resources, Resource.Drawable.ic_racks_vector, null);
            }

            ipBikesImg.SetImageDrawable(bikeDrawable);
            ipSlotsImg.SetImageDrawable(rackDrawable);

            streetViewFragment.GetStreetViewPanoramaAsync(this);

            fab        = view.FindViewById <SwitchableFab> (Resource.Id.fabButton);
            fab.Click += HandleFabClicked;
        }
 private void ChangeTintColor()
 {
     if (!_materialIcon.TintColor.IsDefault)
     {
         var tintColor = _materialIcon.TintColor.ToAndroid();
         DrawableCompat.SetTint(this.Control.Drawable, tintColor);
     }
 }
Exemplo n.º 19
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            if ((int)Build.VERSION.SdkInt >= 21)
            {
                Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
            }

            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            var fragments = new V4Fragment[]
            {
                new HomeFragment(),
                new PerformanceFragment(),
                new CollectionFragment()
            };
            var titles = (new int[] {
                Resource.String.strHome,
                Resource.String.strPerformance,
                Resource.String.strCollection
            });

            var toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.app_bar);

            SetSupportActionBar(toolbar);
            SupportActionBar.SetTitle(titles[0]);
            var tabLayout = FindViewById <TabLayout>(Resource.Id.sliding_tabsIcon);

            var viewPager = FindViewById <ViewPager>(Resource.Id.viewpagerIcon);

            viewPager.Adapter = new TabsFragmentPagerAdapter(SupportFragmentManager, fragments, titles);
            tabLayout.SetupWithViewPager(viewPager);

            var homeIcon        = VectorDrawableCompat.Create(Resources, Resource.Drawable.ic_home, Theme);
            var performanceIcon = VectorDrawableCompat.Create(Resources, Resource.Drawable.ic_barChart, Theme);
            var collectionIcon  = VectorDrawableCompat.Create(Resources, Resource.Drawable.ic_collection, Theme);

            tabLayout.GetTabAt(0).SetIcon(homeIcon);
            tabLayout.GetTabAt(1).SetIcon(performanceIcon);
            tabLayout.GetTabAt(2).SetIcon(collectionIcon);

            var tabIconColors = ContextCompat.GetColorStateList(this, Resource.Drawable.tab_colors);

            for (int i = 0; i < 3; i++)
            {
                var iconWrap = DrawableCompat.Wrap(tabLayout.GetTabAt(i).Icon);
                DrawableCompat.SetTintList(iconWrap, tabIconColors);
                tabLayout.GetTabAt(i).SetIcon(iconWrap);
            }

            tabLayout.TabSelected += (object sender, TabLayout.TabSelectedEventArgs e) =>
            {
                var tab = e.Tab;
                viewPager.SetCurrentItem(tab.Position, true);
                SupportActionBar.SetTitle(titles[tab.Position]);
            };
        }
Exemplo n.º 20
0
 /// <summary>
 /// Helper method used to assign a color state list to the specified layer if it exists.
 /// </summary>
 /// <param name="drawable">Drawable.</param>
 /// <param name="index">Index.</param>
 /// <param name="colorList">Color list.</param>
 public static void SetLayerTintList(LayerDrawable drawable, int index, ColorStateList colorList)
 {
     if (drawable?.NumberOfLayers > index)
     {
         var layer   = drawable.GetDrawable(index);
         var wrapper = DrawableCompat.Wrap(layer);
         DrawableCompat.SetTintList(wrapper, colorList);
     }
 }
Exemplo n.º 21
0
        private Drawable GetDrawable(int resource)
        {
            var drawable = DrawableCompat.Wrap(VectorDrawableCompat.Create(Resources, resource, Context.Theme));
            var value    = new TypedValue();

            Context.Theme.ResolveAttribute(Resource.Attribute.colorAccent, value, true);
            DrawableCompat.SetTint(drawable, value.Data);
            return(drawable);
        }
Exemplo n.º 22
0
        public static ColorFilter GetColorFilter(this Drawable drawable)
        {
            if (drawable is null)
            {
                return(null);
            }

            return(DrawableCompat.GetColorFilter(drawable));
        }
Exemplo n.º 23
0
 private void CreateGuage()
 {
     RingDrawable?.SetColors(new int[] { RingColors.StartColor, RingColors.EndColor });
     DrawableCompat.SetTintList(CenterDrawable, CenterTint);
     _inactiveCircularEventGaugeDrawable = CreateGaugeDrawable();
     _circularEventGaugeDrawable         = CreateRotateDrawable(_inactiveCircularEventGaugeDrawable);
     Indicator.IndeterminateDrawable     = _circularEventGaugeDrawable;
     Background = _inactiveCircularEventGaugeDrawable;
 }
Exemplo n.º 24
0
 public DrawerAroundAdapter(Context context)
 {
     this.context      = context;
     this.manager      = FavoriteManager.Obtain(context);
     this.starDrawable = DrawableCompat.Wrap(ContextCompat.GetDrawable(context, Resource.Drawable.ic_small_star));
     DrawableCompat.SetTint(starDrawable, ContextCompat.GetColor(context, Resource.Color.white_tint_secondary));
     this.favorites = new HashSet <Int32> ();
     LoadFavorites();
 }
 private void ChangeTintColor(Drawable drawable)
 {
     if (!_materialIcon.TintColor.IsDefault && drawable != null)
     {
         var tintColor = _materialIcon.TintColor.ToAndroid();
         DrawableCompat.SetTint(drawable, tintColor);
         this.Control.SetImageDrawable(drawable);
     }
 }
Exemplo n.º 26
0
        void Initialize()
        {
            DrawableCompat.Wrap(Background);

            Focusable = true;
            Clickable = true;
            InputType = InputTypes.Null;

            SetOnClickListener(this);
        }
Exemplo n.º 27
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.tabs_activity);

            var toolBar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolBar);

            var fragments = new Fragment[]
            {
                fragment1,
                fragment2,
                fragment3,
            };

            var viewPager = FindViewById <ViewPager>(Resource.Id.viewPager);

            viewPager.Adapter = new IconTabsFragmentPagerAdapter(SupportFragmentManager, fragments);

            var tabLayout = FindViewById <TabLayout>(Resource.Id.sliding_tabs);

            tabLayout.SetupWithViewPager(viewPager);

            //tabLayout.GetTabAt(0).SetIcon(Resource.Drawable.ic_filter_1_white_24dp);
            //tabLayout.GetTabAt(1).SetIcon(Resource.Drawable.ic_filter_2_white_24dp);
            //tabLayout.GetTabAt(2).SetIcon(Resource.Drawable.ic_filter_3_white_24dp);

            var tabIconColors = Build.VERSION.SdkInt >= BuildVersionCodes.M
                        ? Resources.GetColorStateList(Resource.Drawable.tab_icon_color, Theme)
                        : Resources.GetColorStateList(Resource.Drawable.tab_icon_color);

            var icon1 = GetDrawable(Resource.Drawable.ic_filter_1_white_24dp);
            var icon2 = GetDrawable(Resource.Drawable.ic_filter_2_white_24dp);
            var icon3 = GetDrawable(Resource.Drawable.ic_filter_3_white_24dp);

            var tab1 = tabLayout.GetTabAt(0);
            var tab2 = tabLayout.GetTabAt(1);
            var tab3 = tabLayout.GetTabAt(2);

            // We wrap the icon to support API < 21
            var iconWrap = DrawableCompat.Wrap(icon1);

            DrawableCompat.SetTintList(iconWrap, tabIconColors);
            tab1.SetIcon(iconWrap);

            iconWrap = DrawableCompat.Wrap(icon2);
            DrawableCompat.SetTintList(iconWrap, tabIconColors);
            tab2.SetIcon(iconWrap);

            iconWrap = DrawableCompat.Wrap(icon3);
            DrawableCompat.SetTintList(iconWrap, tabIconColors);
            tab3.SetIcon(iconWrap);
        }
 private static void TintOverflowIcon(Toolbar toolbar, Color color, PorterDuff.Mode tintMode = null)
 {
     if (color != null && toolbar.OverflowIcon != null)
     {
         if (tintMode != null)
         {
             DrawableCompat.SetTintMode(toolbar.OverflowIcon, tintMode);
         }
         toolbar.OverflowIcon.SetDrawableTint(color);
     }
 }
 public static void SetDrawableTint(this Drawable drawable, Color tint)
 {
     if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
     {
         drawable.SetTint(tint);
     }
     else
     {
         DrawableCompat.SetTint(drawable, tint);
     }
 }
        private void ChangeTintColor(Drawable drawable)
        {
            if (_materialIcon.TintColor.IsDefault || drawable == null)
            {
                return;
            }

            var tintColor = _materialIcon.TintColor.ToAndroid();

            DrawableCompat.SetTint(drawable, tintColor);
            Control.SetImageDrawable(drawable);
        }