android - 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/
在文档中,他们说以下内容:
将在其上绘制背景的画布
所以当前的行为是意料之中的。
解决方案
我设法通过将循环逻辑移动到函数来修复它:void Draw(Canvas canvas)
.
推荐阅读
- sql - 如何使用 UNION 用另一个表中的值填充 NULL 值
- javascript - 回调控制模态显示
- docker - Docker-提供多个 USB 设备访问的任何方式(不使用 --privilaged)?
- vba - 尝试将一个表中不存在的数据附加到 VBA 中的另一个表中并出现语法错误
- c - CS50 PSET4 - 模糊滤镜帮助
- iis - 如何让 IIS UrlRewrite 正确处理 CSS 传递的 woff 文件?
- c# - 如何使用 WPF Prism 库打开多个窗口?
- node.js - 通过 mongoose 在 mongodb 中更新嵌套数组中的数据对象
- xaml - 如何在 UWP 中创建自定义切换开关样式
- javascript - 使用 ajax/postman 将文件发送到谷歌表单