3

我不想开发名为“Balda”的游戏。

我有一个 2d 网格的图像视图(或按钮,也许)。用户应该能够在网格上移动他的手指,并且应用程序应该知道在此移动中触摸了网格中的哪些图像。所以,下图中是我想要实现的目标。A - 是用户在屏幕上按下的起点。B是手指离开屏幕的终点。而且我需要知道触摸了哪些图像(图片中有蓝色)。

我知道我可以做这样的事情。但我认为这是一个错误的解决方案,因为它与按职责赋予功能的原则相矛盾。我认为 imageView 有责任知道手指何时进入其边界以及何时离开其边界。我想,这将在 android API 中。它有像 EVENT_HOVER_ENTER 和 EVENT_HOVER_LEAVE 这样的 MotionEvent 但它不适用于手指。在某些视图上按下手指后,如果我做对了,它将接收所有其他 MotionEvents。

我认为这是错误的。我该怎么做才能获得此功能?也许我可以创建一些支持它们的自定义侦听器和自定义视图?

在此处输入图像描述

4

1 回答 1

3

我认为您的要求与自定义 gridview 略有相似。

您可以尝试以下步骤-

1)创建自定义视图

2)将TouchListener附加到它。

3)将此视图划分为4*3矩阵。

4)将您的图像映射到这个 4*3 矩阵

5)编写一个函数,给出相应的单元格编号 toTouched Co-ordinates

6)获取单元格号后;获取该单元格号的映射图像

7)将此图像放入arraylist

8)当用户抬起手指时,您将获得触摸图像的数组列表(随心所欲)。

9)记得把这个自定义视图放在你的活动中

告诉我,如果您有任何疑问或疑虑

于 2013-06-21T13:14:17.697 回答