整个屏幕的onTouchListener

key*_*ser 11 android view coordinates ontouchlistener

我有一个充满按钮的屏幕,但希望onTouch方法使用整个屏幕的坐标.我首先尝试使用带有onTouchListener的RelativeLayout,但从未设法让它与侦听器"连接"(即触摸屏幕时没有发生任何事情),我也尝试将ImageView放在屏幕顶部,然后使这个视图不可见.

最后一种方法对onClicks给出了正确的响应,但我从未设法让它变得不可见.

如果这是最好的解决方案,我非常怀疑,如何使ImageView完全不可见,而不会丢失其onTouchListener(我已尝试使用白色backgroundColor和setAlpha(0)).

我可以以某种方式使onTouchListener使用全局坐标对整个屏幕作出反应,同时屏幕显示(并改变)几个按钮(最好没有不可见的imageview)?

如果你不明白我的要求,请随时抱怨.我会尽力填补空白.

编辑:

我现在设法通过使用常规的onTouch方法来解决问题.我遇到了几个问题,让ACTION_DOWN和ACTION_MOVE激活按钮,但我终于让它工作了.对于阅读此内容的其他人:可能会使用onInterceptTouchEvent(但我从来没有弄清楚如何获取屏幕坐标而不是视图坐标).

小智 8

对不起,如果我错了,但我相信我遇到了类似的问题.我想要一个标题画面,显示一张图片,并在图片上写着"点击继续"或类似的东西.我搞砸了一下,发现你可以点击布局.

    android:focusable="true" 
    android:id="@+id/titlescreenframe">
Run Code Online (Sandbox Code Playgroud)

在我的xml文件中为我的布局.背景图片只是在背景属性中(我意识到你没有使用图像)

无论如何,回到我的活动中

    private FrameLayout fl;
    ...
    fl = (FrameLayout)findViewById(R.id.titlescreenframe);
    fl.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)

然后我使用switch语句来处理下一个布局上的按钮.如果需要,请在此处:使用Switch语句处理按钮单击

似乎这应该适用于其他布局,我没有任何关于我的主要布局的视图.(除非布局本身算作一个?)

哈!刚刚意识到你说你找到了解决方案.愚蠢的时机.我会发布这个帮助某人的机会,很高兴为每个人编码.:)

  • 如果你的目标比1.6更新,你可以直接使用android:onClick ="functionname"而不是设置focusable并在代码中分配onclick监听器. (2认同)