我正在计算android标签中的滑动区域。要求是当用户在选项卡的屏幕的前10%上滑动时,应该会出现一个弹出窗口。
如何通过使用onFling();
的触摸事件来实现它现在我正在执行下面的操作,(arg0和arg1是Motion事件)
int height = this.webview.getHeight();
float x = arg0.getRawX();
float y = arg0.getRawY();
float x2 = arg1.getRawX();
float y2 = arg1.getRawY();
if (x < 2000.00 && x2 < 2000.00 && y < 200.00 && y2 < 80.00) {
showPopUp();
}
但是,我不想使用像2000.00或80.00这样的硬编码值。除此之外,应根据设备高度计算滑动。虽然这很好。
知道该怎么做吗?
答案 0 :(得分:0)
您可以通过WindowManager
获取屏幕高度 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
// This is the height of the screen
size.y;
然后,您可以轻松地使用它来确定滑动是否位于前10%。
根据您需要计算高度的位置,您可以将此值缓存在成员中(在Activity的onResume()中),以便在配置更改(设备轮换等)时更新它
答案 1 :(得分:-1)
int height = this.webview.getHeight();
int width = this.webview.getWidth();
float maxHeight = height*.10f; //10% of 1000 is 100
float maxWidth = width*.10f; //10% of 500 is 50
float x = arg0.getRawX();
float y = arg0.getRawY();
float x2 = arg1.getRawX();
float y2 = arg1.getRawY();
if (x > 0 && x2 < maxWidth && y > 0 && y2 < maxHeight) {
showPopUp();
}