Xamarin Android: как рисовать поверх холста - PullRequest
0 голосов
/ 14 мая 2018

Я пишу пользовательский рендер для 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/

В документах говорится следующее:

холст, на котором будет нарисован фон

Итак, текущее поведение было ожидаемым.

1 Ответ

0 голосов
/ 14 мая 2018

Мне удалось это исправить, переместив круговую логику в функцию: void Draw(Canvas canvas).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...