Pixiview/Pixiview.Android/Renderers/CardViewRenderer.cs

43 lines
1.4 KiB
C#

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<CardView>
{
public CardViewRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<CardView> 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);
}
}
}
}
}