2014-02-26 83 views
0

我正在計算android選項卡中的滑動區域。要求是當用戶在選項卡的前10%屏幕上滑動時,應該會彈出一個窗口。我如何通過使用onFling()的觸摸事件來實現它?計算touchevent中的滑動區域

現在我做它像下面,(爲arg0和ARG1是運動事件)

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

你可以把透明的形象在你想要的(在你的情況下,前10%)聽觸摸和觸摸監聽器設置爲僅圖像.. – Pramod

回答

-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(); 
} 
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()中),以便在配置更改(設備旋轉等)時更新該值

+0

我已經有屏幕高度的區域。 – Deepak