如何在自定义视图中定义相对触摸大小?

问题描述 投票:0回答:1

我做一个自定义视图,可建立声波。它由绘制的列组成。我也有滑动条来指示要裁剪的内容,它们也由涂色的列表示。问题是,在一定规模上,当我想单击一下来移动其中一列时,我不会点击它。有什么方法可以设置触摸区域的最佳宽度来解决此问题?

在这里我可以抓住滑动条:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9BMHEzZS5wbmcifQ==” alt =“屏幕截图捕获滑动栏”>

但是在这种情况下,我不能:

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9DVXM5dS5wbmcifQ==” alt =“抓屏滑动条不起作用”>

此外,我也不能使单击区域过宽,因为其余区域将使用它来处理不同的触摸事件。

android android-custom-view android-touch-event
1个回答
0
投票

您不应该针对触摸事件检查每一列,我认为这不是一个好方法。您应该通过使用触摸事件来确定时间点。该过程就像您获取触摸事件的y值,然后计算屏幕触摸事件发生时声音块的开始和结束。之后,您可以确定相应块的时间点,然后在数据结构中搜索该时间点。我认为您应该针对这种计算优化数据结构。计算示例,屏幕宽度为1000px,屏幕开始对应于2:30,屏幕结束对应于4:00,并且触摸事件发生在(400,600)。 TouchTimePoint = 150s + 90 *(600/100)。然后,通过使用touchtimepoint,您可以找到相应的声音列。

© www.soinside.com 2019 - 2024. All rights reserved.