【发布时间】:2014-09-09 04:35:42
【问题描述】:
我在 ZoomableViewGroup 中有一个 GLTextureView,本质上是一个画布,可以使用捏拉缩放手势进行缩放并用两根手指平移——单指触摸用于在此画布上进行手指绘画。在其上方的层上,有一些片段保存着预定义的 ImageView,这些片段可以由用户随意添加和减去。它们也可以缩放和平移,但只有在它们被长按后才能进入可编辑模式。我的问题是:用户在实际尝试缩放他们所在的画布时,很容易意外地长按其中一个片段。例如,如果用户将两根手指放在画布上,而其中一根手指碰巧落在其中一个片段上,则应用程序会将其读取为两个单独的 MotionEvent,每个都只有一个指针,其中一个指向画布(绘制一些手指画而不是捏缩放),另一个转到片段(认为它被长按并切换到可编辑模式)。
由于两根手指分别放在不同的视图上,所以将两指手势分为两个单指手势!我通过在执行此手势时在片段视图上查询getPointerCount() 来验证这一点。我想将逻辑放入我的片段的onLongClick 方法中,该方法基本上说“如果在屏幕上的任何地方放下第二个指针,则什么也不做。”但我不确定如何从片段中检测到第二个指针。这可能吗?
Tl/dr: 给定片段内视图上的触摸或长按事件,我需要检测指针的数量。但不仅仅是视图顶部的指针数量,还有在任何地方触摸屏幕的指针数量。这可能吗?
【问题讨论】:
标签: android android-event