首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在其他视图上的画布外部绘制

在其他视图上的画布外部绘制
EN

Stack Overflow用户
提问于 2014-02-24 06:43:26
回答 2查看 875关注 0票数 1

在我的xml-layout中,我有一个View as im,绘制一个跟踪手指的图标。

屏幕的另一半是一个简单的LinearLayout。我想知道我是否能够在我的视图之外绘制,并在线性布局上绘制?

我试着用下面的代码裁剪视图的画布:

代码语言:javascript
复制
 Rect newRect = canvas.getClipBounds();
 newRect.inset(0,400);
 canvas.clipRect(newRect, Op.REPLACE); 

 canvas.drawBitmap(icon,fingerTouchX,fingerTouchY,null);

我还在linearLayout的xml布局中添加了android:clipChildren="false"。我已经关闭了硬件加速。

尽管如此,它还是不工作。有没有人知道这是否可行?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-02-24 06:54:14

据我所知,你只能在你所在的视图上绘制,因为画布尺寸不会延伸到该视图之外。您可以让您正在绘制的View位于另一个视图(在您的示例中是LinearLayout)之上,以便它在另一个视图的区域上绘制,即使它不在视图本身上。

因此,简而言之,在绘制一个视图的画布时,您不能在另一个视图上,但如果第一个视图的区域包含第二个视图的区域,则可以在另一个视图上传达绘制效果。

票数 1
EN

Stack Overflow用户

发布于 2015-09-16 16:28:02

你需要使用负值的call inset:

代码语言:javascript
复制
newRect.inset(0, -400);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21975681

复制
相关文章

相似问题

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