using Android.Content; using Android.Graphics; using Pixiview.Droid.Renderers; using Pixiview.UI; using Xamarin.Forms; using Xamarin.Forms.Platform.Android; [assembly: ExportRenderer(typeof(CardView), typeof(CardViewRenderer))] namespace Pixiview.Droid.Renderers { public class CardViewRenderer : VisualElementRenderer { public CardViewRenderer(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); var element = e.NewElement; if (element != null) { var radius = element.CornerRadius; if (radius > 0) { //var scale = Resources.DisplayMetrics.Density; //OutlineProvider = new CornerRadiusOutlineProvider(element, radius, scale); //ClipToOutline = true; var density = Resources.DisplayMetrics.Density; Elevation = (float)(element.ShadowOffset.Height + 2) * density; var drawable = new RoundCornerDrawable(radius * density); drawable.SetColorFilter(element.BackgroundColor.ToAndroid(), PorterDuff.Mode.Src); ((Android.Views.View)this).SetBackground(drawable); } } } } }