android 手指离开屏幕,手指进入或离开视图时的android MotionEvent

我不会开发名为“ 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值