首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不太懂区域课

不太懂区域课
EN

Stack Overflow用户
提问于 2017-06-09 00:25:51
回答 1查看 153关注 0票数 0

我用xamarin开发了一个android应用程序。当我尝试使用Region类时,我遇到了一个问题,下面的代码可以很好地工作,并显示一个预期的蓝色区域。

代码语言:javascript
复制
Rect rect1 = new Rect(0, 0, 10,10);
canvas.ClipRect(rect1);
Rect rect2 = new Rect(20, 20, 30,30);
canvas.ClipRect(rect2, Region.Op.Union);
canvas.DrawRect(0, 0, 40, 40, paint);

但是下面的代码不起作用,只是显示空白的背景。

代码语言:javascript
复制
Region region = new Region();
Rect rect1 = new Rect(0, 0, 10,10);
region.Union(rect1);
Rect rect2 = new Rect(20, 20, 30,30);
region.Union(rect2);

canvas.ClipRegion(region);
canvas.DrawRect(0, 0, 40, 40, paint);

我不知道为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-12 05:53:41

事实上,它可以工作,但是它可能会被您的ActionBar或其他什么东西阻塞,所以您看不到它,并且认为它不工作,比如。但是,如果修改坐标,就可以看到所绘制的矩形。这是我的代码和结果:

代码语言:javascript
复制
Region region = new Region();
Rect rect1 = new Rect(200, 200, 300, 300);
region.Union(rect1);
Rect rect2 = new Rect(400, 400, 500, 500);
region.Union(rect2);

下面是解释文档方法的canvas.ClipRegion(region)

将当前剪辑与指定区域相交。请注意,与通过当前矩阵转换参数的clipRect()和clipPath()不同,clipRegion()假定其参数已经位于当前层位图的坐标系中,因此不执行转换。

编辑:

坐标为clipRect(),坐标为clipRegion()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44447504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档