在视图上有效使用 touch/hover 坐标

Effective use of touch/hover co-ordinates on a View

在 Android phone 上,我得到了用户在 his/her phone 屏幕或设备上触摸的坐标信息。那么我如何,use/pass这些X-Y坐标运行我的一个特定函数,并在我的代码中使用它

来自 的参考,如果用户在您的应用程序上触摸屏幕,您可以获得坐标。在触摸侦听器上实现之后,然后在 if 语句中 MotionEvent.ACTION_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,方法与 post 中的第一个相同,而不是使用 setOnTouchListener使用getWindow().getDecorView().setOnHoverListener()就是这样。

旁注是使用第一个更好,因为不能相信 onHover 可以工作,实际上它对我不起作用,那只是 btw

希望我回答了你的问题。

您可以通过扩展 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);
}

}