我注意到,在Android API级别11(ICS)MotionEvent
有一个transform
方法需要Matrix
。这实际上会让我做的更清洁一点,但我编码的级别为8级。任何方式来模拟Android API级别8或9中的MotionEvent.transform(矩阵)?
有没有方便的替代方案MotionEvent.transform()
适用于早期版本的Android?我希望历史和多点触摸坐标全部转换,我希望它能够正确处理相对与绝对坐标之间的区别,这是事情变得棘手的地方。
我真正想知道的是,如果我可以创建MotionEvent
这是另一个MotionEvent
的转换副本。我其实不需要任意转换,但我需要能够翻译和缩放。我相信我可以用offsetLocation
进行翻译,但我没有看到任何缩放MotionEvent
(11级之前)的方法。特别是,如何转换多点触摸事件的坐标? obtain
方法只需要一个(x,y)对,而不是一个数组。
我想这样做的原因是我有一个对象将事件分派给一组“子”对象。现在,这些孩子中的每一个都会以某种临时的方式转换坐标。但是,父母(调度员)知道需要执行哪种转换,因此在将其分发给儿童之前,将其转换为MotionEvent
(或副本)会更清晰。或者,我可以创建自己的类,它可以包装MotionEvent
或将数据从MotionEvent
中复制并转换出来,但如果我可以使用MotionEvent
会更简单。
你唯一能做的就是自己计算转换。使用Matrix类应该是微不足道的。 –
@aleph_null是的,但我真的可以用变换后的坐标填充一个'MotionEvent'吗?我没有看到任何方式设置更多的一对(x,y)坐标。我如何转换多点触控事件? –
即时通讯不知道它是否会工作,但也许你可以使用MotionEvent.obtain和几个addBatch调用创建一个MotionEvent。独立转换每组x,y坐标。 –