Beispiel #1
0
 private boolean motionZoom(MotionEvent event) {
   switch (event.getActionMasked()) {
     case MotionEvent.ACTION_MOVE:
       if (m_status == STA_ZOOM) {
         float dx = event.getX(0) - event.getX(1);
         float dy = event.getY(0) - event.getY(1);
         m_zoom_dis2 = Global.sqrtf(dx * dx + dy * dy);
         float scale = m_zoom_scale * m_zoom_dis2 / m_zoom_dis1;
         if (m_scale / scale > 1.0001 || m_scale / scale < 0.999) {
           m_scale = scale;
           vLayout();
           vSetPos(m_zoom_pos, (int) m_holdx, (int) m_holdy);
         }
       }
       break;
     case MotionEvent.ACTION_UP:
     case MotionEvent.ACTION_POINTER_UP:
     case MotionEvent.ACTION_CANCEL:
       if (m_status == STA_ZOOM) {
         m_status = STA_NONE;
         float dx = event.getX(0) - event.getX(1);
         float dy = event.getY(0) - event.getY(1);
         m_zoom_dis2 = Global.sqrtf(dx * dx + dy * dy);
         float scale = m_zoom_scale * m_zoom_dis2 / m_zoom_dis1;
         if (m_scale / scale > 1.0001 || m_scale / scale < 0.999) {
           m_scale = scale;
           vLayout();
           vSetPos(m_zoom_pos, (int) m_holdx, (int) m_holdy);
         }
         if (m_listener != null) {
           m_listener.OnPDFInvalidate(false);
           m_listener.OnPDFZoomEnd();
         }
         vOnZoomEnd();
       }
       break;
   }
   return true;
 }