我不想开发名为“Balda”的游戏。
我有一个2D网格的图像视图(或按钮,也许)。 用户应该可以在网格上移动他的手指,应用程序应该知道在此移动中触摸了网格中的图像。所以,在下面的图片中我正在尝试实现。 A - 是用户在屏幕上按下的起点。 B是手指离开屏幕的终点。我需要知道触摸了什么图像(图中有蓝色)。
我知道我可以做this之类的事情。但我认为这是一个错误的解决方案,因为它与责任赋予功能的原则相矛盾。 我认为imageView的责任是知道手指何时进入其边界以及何时离开其边界。 我想,这将是在Android API中。它有像EVENT_HOVER_ENTER和EVENT_HOVER_LEAVE这样的MotionEvent但它不能用手指操作。在某些View上按下手指后,如果我做对了,它将接收所有其他MotionEvent。
我认为这是错误的。我该怎么做才能获得此功能?也许我可以创建一些支持它们的自定义侦听器和自定义视图?
答案 0 :(得分:3)
我认为您的要求与自定义gridview略有相似。
您可以尝试以下步骤 -
1)创建自定义视图
2)将TouchListener附加到它。
3)将此视图划分为4 * 3矩阵。
4)将图像映射到此4 * 3矩阵
5)编写一个函数,该函数给出相应于Touched坐标的单元格数
6)获取单元格编号后,获取该单元格编号的映射图像
7)将此图片放入arraylist
8)当用户抬起手指时,您将获得触摸图像的arraylist(随心所欲地做任何事情)。
9)请记住将此自定义视图添加到您的活动中
告诉我,如果您有任何疑问或疑虑