在另一个视图上绘制画布外

时间:2014-02-23 22:43:26

标签: java android android-canvas

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

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

我试图用以下代码剪切我的视图画布:

 Rect newRect = canvas.getClipBounds();
 newRect.inset(0,400);
 canvas.clipRect(newRect, Op.REPLACE); 

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

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

虽然,它不起作用。有谁知道这是否可行?

谢谢!

2 个答案:

答案 0 :(得分:1)

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

enter image description here

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

答案 1 :(得分:0)

您需要使用负值调用插入内容:

KEY