Android:我可以创建一个不是矩形的视图/画布,但是例如圆形吗?

znq*_*znq 12 android canvas view rounding

我有一个圆形的视图,悬浮在上面( - >在z轴方向从屏幕出来)的主要内容.当有人点击屏幕时,我想要选择主要内容,或者当它覆盖主视图时,视图悬停在上方.

到目前为止完美无缺.我在透明帆布上有一个圆形物品.这意味着您可以看到该圆圈之外的所有背景.但是,您无法选择它,因为它仍然是悬停的画布,只有透明的颜料.

现在我想知道,要解决这个问题,是否有可能使视图/画布本身呈圆形?


更新

我添加了一个图像,以便更好地解释我试图实现的目标. 替代文字

zse*_*rge 4

据我所知——这是不可能的。我已经在 git.kernel.org 检查了View.java的来源,它基于 Rect 类 - 矩形定义位置、大小、要无效的区域等。(“视图的几何形状是矩形的几何形状。” - 来自View.java 中的注释)

至于 Canvas 类 - 它通常是通过 Bitmap 或 GL 构建的。位图肯定是一个矩形(矩阵),所以canvas似乎也代表一个矩形。如果使用 GL,则指定视口(也是一个矩形)。

这似乎是检查传递给 onTouch() 方法的坐标是否适合您的区域的最明显方法,如果不适合则返回 false。然后该事件将被传递到下面的视图,并且它应该处理该事件。