private Drawable Wrap(Drawable drb, int tint) { var compat = DrawableCompat.Wrap(drb); DrawableCompat.SetTint(compat, tint); return(compat); }
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); } } } }
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); }
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); } }
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); } } } }
public static Drawable TintDrawable(this Drawable drawable, Color color) { drawable = DrawableCompat.Wrap(drawable); DrawableCompat.SetTint(drawable.Mutate(), color); return(drawable); }
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); } } } }
Drawable TintDrawable(Drawable drawable, int tint) { Drawable tintedDrawable = DrawableCompat.Wrap(drawable); DrawableCompat.SetTint(tintedDrawable, tint); return(tintedDrawable); }
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); } }
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); } } } }
public MauiPickerBase(Context context) : base(context) { if (Background != null) { DrawableCompat.Wrap(Background); } }
/* * 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); }
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); } }
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)); } } }
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); } }
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]); }; }
/// <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); } }
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); }
public static ColorFilter GetColorFilter(this Drawable drawable) { if (drawable is null) { return(null); } return(DrawableCompat.GetColorFilter(drawable)); }
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; }
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); } }
void Initialize() { DrawableCompat.Wrap(Background); Focusable = true; Clickable = true; InputType = InputTypes.Null; SetOnClickListener(this); }
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); }