當前位置: 首頁>>代碼示例>>C#>>正文


C# Android.ClipPath方法代碼示例

本文整理匯總了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);
        }
開發者ID:Ideine,項目名稱:Xmf2,代碼行數:41,代碼來源:CircleImageView.cs

示例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);
 }
開發者ID:codercampos,項目名稱:CrossFeaturesXamarin,代碼行數:37,代碼來源:RoundedImageRenderer.cs


注:本文中的Android.ClipPath方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。