我正在写普通的拼图游戏。为方便起见,我创建了一个自定义视图:PuzzleView extends ImageView
. 它覆盖了onTouchEvent()
,所以我可以View
用手指移动我的。好的。
但是,我无法将这些视图彼此靠近,因此它们适合自己。拼图不是正方形,它们的形状如下所示:
问题是这些视图必须重叠一点才能看起来不错。但是当正方形重叠时,触摸事件在相交区域中效果不佳。如果我天真地把这个谜题作为背景PuzzleView
,其中 4 个会是这样的:
它们具有透明度,因此我可以挤压它们以使其看起来不错。但这不是一个好主意,因为触摸事件。如果我们触摸边界,“更高”的拼图(在 z-index 中)将被触摸。也许用户想拿起另一个,但他不能。
我已经阅读了一些有关 AndroidShape
课程的信息。如果我有Shape
一个拼图,那就太好了 - 然后我可以将它用作我的背景,PuzzleView
我希望MotionEvent
只有当我触摸形状时才会出现,而不是它周围的一些矩形区域。
问题是:如何获得Shape
一个谜题?理想情况下,我将指向我的图像,它会给我一个Shape
从该图像中获取的图像。如果不可能(或非常困难),也许我们可以用 来解决这个难题Shape
,Path
但是怎么做呢?也许它的形状太复杂而无法使用Path
?也许有更简单的方法?