首页 > 解决方案 > Xamarin Android:如何在 Canvas 上绘图

问题描述

我正在为Xamarin.Forms. 我正在重写该类ImageRenderer以对图像进行一些调整。

但是,我想用圆圈覆盖图像的某些部分,所以我覆盖了方法void OnDraw(Canvas canvas)

然后我Canvas通过画一些圆圈来修改一点:

protected override void OnDraw(Canvas canvas)
{
    var paint = new Paint
    {
        Color = Color.Red
    };
    paint.SetStyle(Paint.Style.Fill);

    foreach (var mapObject in _control.PointSource)
    {
        canvas.DrawCircle(mapObject.Location.X, mapObject.Location.Y, 100 / _scaleFactor, paint);
    }

    base.OnDraw(canvas);
}

然而,一切都是在背景上绘制的。实际图像始终位于顶部。如何在图像上画圆圈?

https://developer.xamarin.com/api/member/Android.Views.View.OnDraw/

在文档中,他们说以下内容:

将在其上绘制背景的画布

所以当前的行为是意料之中的。

标签: androidxamarincanvas

解决方案


我设法通过将循环逻辑移动到函数来修复它:void Draw(Canvas canvas).


推荐阅读