private static void DrawBorder(Canvas canvas, eliteVideo control, Path path) { if (control.BorderColor == Xamarin.Forms.Color.Transparent || control.BorderThickness <= 0) { return; } var paint = new Paint(); paint.AntiAlias = true; paint.StrokeWidth = control.BorderThickness; paint.SetStyle(Paint.Style.Stroke); paint.Color = control.BorderColor.ToAndroid(); canvas.DrawPath(path, paint); paint.Dispose(); }
//public static Drawable GenerateBackgroundWithShadow(eliteVideo control, Android.Views.View child, Android.Graphics.Color backgroundColor, // Android.Graphics.Color shadowColor, // int elevation, // GravityFlags shadowGravity) //{ // var radii = GetRadii(control); // int DY; // switch (shadowGravity) // { // case GravityFlags.Center: // DY = 0; // break; // case GravityFlags.Top: // DY = -1 * elevation / 3; // break; // default: // case GravityFlags.Bottom: // DY = elevation / 3; // break; // } // var shapeDrawable = new ShapeDrawable(); // shapeDrawable.Paint.Color = backgroundColor; // shapeDrawable.Paint.SetShadowLayer(elevation, 0, DY, shadowColor); // child.SetLayerType(LayerType.Software, shapeDrawable.Paint); // shapeDrawable.Shape = new RoundRectShape(radii, null, null); // var drawable = new LayerDrawable(new Drawable[] { shapeDrawable }); // drawable.SetLayerInset(0, elevation, elevation, elevation, elevation); // child.Background = drawable; // return drawable; //} public static float[] GetRadii(eliteVideo control) { var radius = (float)(control.CornerRadius); radius *= 2; var topLeft = control.CornerRounded.ToLower().Contains("topleft") ? radius : 0; var topRight = control.CornerRounded.ToLower().Contains("topright") ? radius : 0; var bottomLeft = control.CornerRounded.ToLower().Contains("bottomleft") ? radius : 0; var bottomRight = control.CornerRounded.ToLower().Contains("bottomright") ? radius : 0; if (control.CornerRounded.ToLower().Contains("all")) { topLeft = topRight = bottomLeft = bottomRight = radius; } var radii = new[] { topLeft, topLeft, topRight, topRight, bottomRight, bottomRight, bottomLeft, bottomLeft }; return(radii); }
public RoundedCornerOutlineProvider(eliteVideo pancake, Func <double, float> convertToPixels) { _pancake = pancake; _convertToPixels = convertToPixels; radii = RoundedCornerViewRenderer.GetRadii(pancake); }