本文整理汇总了C#中Android.ClipPath方法的典型用法代码示例。如果您正苦于以下问题:C# Android.ClipPath方法的具体用法?C# Android.ClipPath怎么用?C# Android.ClipPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Android
的用法示例。
在下文中一共展示了Android.ClipPath方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Draw
public override void Draw(Android.Graphics.Canvas canvas)
{
try
{
int width = this.Width - this.PaddingLeft - this.PaddingRight;
int height = this.Height - this.PaddingBottom - this.PaddingTop;
var radius = Math.Min(width, height) / 2;
//var strokeWidth = ((float)(5 * Math.Min(width, height))) / 100;
//radius -= (int)Math.Round(strokeWidth / 2);
// A revoir: Est-ce que c'est bien centré avec les padding?
Path path = new Path();
path.AddCircle(this.PaddingLeft + (width / 2), this.PaddingTop + (height / 2), radius, Path.Direction.Ccw);
canvas.Save();
canvas.ClipPath(path);
base.Draw(canvas);
canvas.Restore();
//path = new Path();
//path.AddCircle(this.PaddingLeft + (width / 2), this.PaddingTop + (height / 2), radius, Path.Direction.Ccw);
//var paint = new Paint();
//paint.AntiAlias = true;
//paint.StrokeWidth = strokeWidth;
//paint.SetStyle(Paint.Style.Stroke);
//paint.Color = Color.Black;
//canvas.DrawPath(path, paint);
//paint.Dispose();
path.Dispose();
return;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("Unable to create circle image: " + ex);
}
base.Draw(canvas);
}
示例2: DrawChild
protected override bool DrawChild(Android.Graphics.Canvas canvas, Android.Views.View child, long drawingTime)
{
try
{
var element = (RoundedImage)Element;
var radius = Math.Min(Width, Height) / 2;
var strokeWidth = 10;
radius -= strokeWidth / 2;
//Create path to clip
var path = new Path();
path.AddCircle(Width / 2, Height / 2, radius, Path.Direction.Ccw);
canvas.Save();
canvas.ClipPath(path);
var result = base.DrawChild(canvas, child, drawingTime);
canvas.Restore();
// Create path for circle border
path = new Path();
path.AddCircle(Width / 2, Height / 2, radius, Path.Direction.Ccw);
var paint = new Paint();
paint.AntiAlias = true;
//TODO look for a correct way to assign the BorderWidth depending of the screen dpi
paint.StrokeWidth = (float)element.BorderWidth;
paint.SetStyle(Paint.Style.Stroke);
paint.Color = element.BorderColor.ToAndroid();
canvas.DrawPath(path, paint);
//Properly dispose
paint.Dispose();
path.Dispose();
return result;
}
catch (Exception ex)
{
//Why this happend
Console.WriteLine(ex.Message);
}
return base.DrawChild(canvas, child, drawingTime);
}