onFling以及FlingSupport

  <编辑>


/* *   *手势探测器回调   */公共布尔>/* *   *该类用于支持扔   */公开课FlingSupport   {   私人布尔m_bFlinging;/* * <我们现在在一个舞吗? */私人长m_lastComputeTime;/* * <上次我们重新计算*/私人长m_elapsedTime;/* * <时间以来经过最后的计算时间*/私人m_decay浮动;   私人m_xVelocity浮动;   私人m_yVelocity浮动;   私人最终浮INITIAL_DECAY=1;   私人最终浮DECAY_CONSTANT=0.99(浮动);      公共FlingSupport ()   {      }      公共空间startFling (MotionEvent startEvent, MotionEvent moveEvent, velocityX浮动,浮动velocityY)   {   m_bFlinging=true;   m_lastComputeTime=startEvent.getEventTime ();   m_decay=INITIAL_DECAY;   m_xVelocity=velocityX/1000;   m_yVelocity=velocityY/1000;   }      公共空间logFling(长timeNowMs)   {   日志。我(“ReceiverViewTest”、“FlingSupport:: m_bFlinging:”+ m_bFlinging   + " m_elapsedTime:“+ m_elapsedTime   + " m_decay:“+ m_decay   + " m_xVelocity:“+ m_xVelocity   + " m_yVelocity:“+ m_yVelocity);   }      公共空间stopFling ()   {   m_bFlinging=false;   }/* *   *重新计算速度   */公共空间验算()   {   如果(m_bFlinging)   {   长timeNowMs=SystemClock.uptimeMillis ();   m_elapsedTime=timeNowMs - m_lastComputeTime;   m_lastComputeTime=timeNowMs;   m_decay *=DECAY_CONSTANT;   m_xVelocity *=m_decay;   m_yVelocity *=m_decay;   logFling (timeNowMs);   }   }/* *   *返回多少x像素我们已经自上次移动   * @return   */公共浮动getXPixelsSinceLastCompute ()   {   返回getPixelsSinceLastCompute(真正的);   }/* *   *返回多少y像素我们已经自上次移动   * @return   */公共浮动getYPixelsSinceLastCompute ()   {   返回getPixelsSinceLastCompute(假);   }      私人浮动getPixelsSinceLastCompute(布尔bX)   {   浮动像素=0;   如果(this.m_bFlinging)   {//距离=速度*时间所以我们看多长时间以来最后一次我们重新计算   像素=m_elapsedTime * (bX ?m_xVelocity: m_yVelocity);   }   返回像素;   }/* *   *返回标志指示是否扔在进步   */布尔bFlingInProgress ()   {   返回m_bFlinging;   }   }



onFling以及FlingSupport