我有一个充满按钮的屏幕,但希望 onTouch 方法使用整个屏幕的坐标。我首先尝试将 RelativeLayout 与 onTouchListener 一起使用,但从未设法使其与监听器“连接”(即触摸屏幕时没有任何反应),我还尝试将 ImageView 放在屏幕顶部,然后使该 View 不可见.
最后一个方法对 onClicks 给出了正确的响应,但我从来没有设法让它不可见。
如果这是我非常怀疑的最佳解决方案,我如何使 ImageView 完全不可见,而不丢失其 onTouchListener(我已经尝试过白色 backgroundColor 和 setAlpha(0))。
当屏幕显示(和更改)多个按钮(最好没有不可见的 ImageView )时,我可以使用全局坐标以某种方式使 onTouchListener 对整个屏幕使用react吗?
如果您不明白我的要求,请随时投诉。我会根据需要尝试填补空白。
编辑:
我现在已经设法通过使用常规的 onTouch 方法解决了这个问题。我遇到了几个让 ACTION_DOWN 和 ACTION_MOVE 激活按钮的问题,但我终于让它工作了。对于阅读这篇文章的其他人:可能会使用 onInterceptTouchEvent(但我从来没有弄清楚如何获取屏幕坐标而不是 View 坐标)。
最佳答案
对不起,如果我错了,但我相信我刚刚遇到了类似的问题。我想要一个显示图片并在图片上显示“点击继续”或类似内容的标题屏幕。我弄乱了一会儿,发现您可以使布局可点击。
android:focusable="true"
android:id="@+id/titlescreenframe">
在我的布局的 xml 文件中。背景图像只是在背景属性中(我知道你没有使用图像)
无论如何,回到我的 Activity
private FrameLayout fl;
...
fl = (FrameLayout)findViewById(R.id.titlescreenframe);
fl.setOnClickListener(this);
然后我使用 switch 语句来处理它和下一个布局上的按钮。如果您需要,请点击此处:Using Switch Statement to Handle Button Clicks
这似乎也适用于其他布局,而且我的主布局实际上没有任何 View 。 (除非布局本身算作一个?)
哈!刚刚意识到你说你找到了解决方案。愚蠢的时机。我会发布这对某人有帮助的机会,祝大家编码愉快。 :)
关于android - 整个屏幕的onTouchListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648985/