当前位置: 首页 > 知识库问答 >
问题:

有效使用视图上的触摸/悬停坐标

储嘉悦
2023-03-14

在Android手机上,我可以通过用户在其手机屏幕或设备上触摸获得坐标信息。那么,如何使用/传递这些X-Y坐标来运行我的特定函数,并在代码中使用它呢

共有2个答案

聂溪叠
2023-03-14

您可以通过扩展android视图并重写onTouchEvent方法来创建自定义视图。例如

public class NotTouchableWebView extends WebView {
private Context context;

public NotTouchableWebView(Context context) {
    super(context);
    this.context=context;
}

public NotTouchableWebView(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.context=context;
}

public NotTouchableWebView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    this.context=context;
}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public NotTouchableWebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);
    this.context=context;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (some condition){
        //your specific function
        return false;
    }
    return super.onTouchEvent(event);
}

}

曾皓
2023-03-14

如果用户触摸应用程序上的屏幕,你可以从帖子中获得坐标。在实现该触控监听器后,请在if语句的MotionEvent中执行。ACTION\u UP将此放在那里

 float myX = event.getX();
 float myY = event.getY();
 // now you can then pass myX,myY in your method or function as parameters

如果您碰巧以Api 14为目标,那么您可以使用与该帖子中的第一个相同的方法使用onhover,而不是使用setOnTouchListenerusegetWindow(). getDecorView(). setOnHoverListener()就是这样。

顺便说一句,使用第一个更好,因为onHover不能被信任工作,实际上它对我不起作用,顺便说一句

希望我回答了你的问题。

 类似资料:
  • 问题内容: 我在Android应用程序中向用户显示图像。 我希望能够告诉他们“触摸”图像的位置。 我可以通过实现OnTouchListener轻松获取屏幕坐标 但是,这些是绝对坐标。我真正需要的是一个将其转换为相对于View的坐标的函数。 我做了一些挖掘工作,但是除了尝试自己实现ScreenToClient方法之外,我似乎什么也没做。 有谁知道一个好的解决方案,还是我只需要自己动手? 似乎可以使用

  • 问题内容: 我创建了一个带有始终可见的上一个和下一个按钮的轮播。这些按钮处于悬停状态,它们变为蓝色。在诸如iPad的触摸设备上,悬停状态为粘滞状态,因此在点击它后按钮保持蓝色。我不要 我可以为每个按钮添加一个类,并使我的CSS像这样:但这可能会降低性能,并且不能正确处理Chromebook Pixel(具有触摸屏和鼠标)之类的设备。 我可以向中添加一个类,并使CSS像这样:但是,这在同时带有触摸和

  • 问题内容: 用这样的HTML: 然后像这样的一些CSS: 如何允许在启用触摸的设备上进行长时间触摸来复制悬停?我可以更改标记/使用JS等,但是想不出一种简单的方法来做到这一点。 问题答案: 好的,我已经解决了!它涉及稍微更改CSS并添加一些JS。 使用jQuery使其变得容易: 用英语:当您开始或结束触摸时,请打开或关闭课程。 然后,在您的HTML中,将类悬停添加到您要与此一起使用的任何内容上。在

  • 问题内容: 用这样的HTML: 然后像这样的一些CSS: 如何允许在启用触摸的设备上进行长时间触摸以复制悬停?我可以更改标记/使用JS等,但是想不出一种简单的方法来做到这一点。 问题答案: 好的,我已经解决了!它涉及稍微更改CSS并添加一些JS。 使用jQuery使其变得容易: 用英语:当您开始或结束触摸时,请打开或关闭课程。 然后,在您的HTML中,将类悬停添加到您要使用它的任何对象上。在CSS

  • 我写了一个react-native应用程序,我注意到,虽然按钮看起来像原生按钮时,点击,但他们不像一个行为(至少不像android按钮的行为)。 如果我自己使用api来管理触觉反馈,将导致全局禁用此选项的用户体验到不良行为 谢谢

  • 问题内容: 如果用户通过触摸设备访问我们的网站,我想忽略所有CSS声明。因为CSS没有意义,而且如果平板电脑在单击/点击时触发CSS,则CSS甚至可能会受到干扰,因为它可能会一直停留直到元素失去焦点。老实说,我不知道为什么触摸设备首先感觉到需要触发-但这是现实,所以这个问题也是现实。 因此,在声明触摸设备后,如何(如何)可以立即删除/忽略所有CSS 声明(而不必知道每个CSS )? 问题答案: 如