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