2014-10-09 30 views
0

当我使用缩放缩放手势时,以水平方式,当按下的坐标和释放的坐标达到一定的差值时,滑动功能总是被调用。如何在不调用webview中的滑动功能的情况下使用缩放缩放?

我该如何解决这个问题?

这是对的WebView

view.getSettings().setBuiltInZoomControls(true); 
    view.getSettings().setSupportZoom(true); 
    view.getSettings().setDisplayZoomControls(false); 

的刷卡功能

protected void swipePage(View v, MotionEvent event, int book) { 
    int action = MotionEventCompat.getActionMasked(event); 

    switch (action) { 
    case (MotionEvent.ACTION_DOWN): 
     swipeOriginX = event.getX(); 
     swipeOriginY = event.getY(); 
     break; 

    case (MotionEvent.ACTION_UP): 
     int quarterWidth = (int) (screenWidth * 0.3); 
     float diffX = swipeOriginX - event.getX(); 
     float diffY = swipeOriginY - event.getY(); 
     float absDiffX = Math.abs(diffX); 
     float absDiffY = Math.abs(diffY); 

     if ((diffX > quarterWidth) && (absDiffX > absDiffY)) { 
      try { 
       navigator.goToNextChapter(index); 
      } catch (Exception e) { 
       errorMessage(getString(R.string.error_cannotTurnPage)); 
      } 
     } else if ((diffX < -quarterWidth) && (absDiffX > absDiffY)) { 
      try { 
       navigator.goToPrevChapter(index); 
      } catch (Exception e) { 
       errorMessage(getString(R.string.error_cannotTurnPage)); 
      } 
     } 
     break; 
    } 
} 

回答

0

检查,如果这项工作的设置 - 如果要是单个手指触摸会有那么只有做刷卡条件检查放。将“事件”变量更改为本地变量。

if(event.getPointerCount() == 1) 
    { 
    switch (action) { 
    case (MotionEvent.ACTION_DOWN): 
      swipeOriginX = event.getX(); 
      swipeOriginY = event.getY(); 
      break; 

    case (MotionEvent.ACTION_UP): 

    int quarterWidth = (int) (screenWidth * 0.3); 
    float diffX = swipeOriginX - event.getX(); 
    float diffY = swipeOriginY - event.getY(); 
    float absDiffX = Math.abs(diffX); 
    float absDiffY = Math.abs(diffY); 

    if ((diffX > quarterWidth) && (absDiffX > absDiffY)) { 
     x = 1; 
     try { 
      navigator.goToNextChapter(index); 
      x = 0; 
     } catch (Exception e) { 
      x = 1; 
      errorMessage(getString(R.string.error_cannotTurnPage)); 
     } 
    } else if ((diffX < -quarterWidth) && (absDiffX > absDiffY)) { 
     x = 1; 
     try { 
      navigator.goToPrevChapter(index); 
      x = 0; 
     } catch (Exception e) { 
      x = 1; 
      errorMessage(getString(R.string.error_cannotTurnPage)); 
     } 


    break;  
    } 
    } 
} 
else if(event.getPointerCount()==2) 
{ 
    // code for pinch zoom 
} 
+0

它不工作..我使用内置的代码为WebView捏缩放。我在我的WebView的设置中启用了缩放缩放功能。 – Cedu 2014-10-13 08:02:24

相关问题