2013-01-24 31 views

回答

1

行动将这个了:

case MotionEvent.ACTION_UP : { 
      mPrevAngle = mCurrAngle = 0; 
      animate(mPrevAngle, mCurrAngle,0); 
      break; 
     } 
+0

yes yes now is working!我试图改变0到10000(durationMillis?),以缓慢地回到初始视图,但总是立即旋转回图像 – lucignolo

1

我解决了这个代码

private double mCurrAngle = 0; 
    private double mPrevAngle = 0; 
    private long durationMillis; 

case MotionEvent.ACTION_UP : { 
     mPrevAngle = Math.toDegrees(Math.atan2(x - xc, yc - y)); 
     mCurrAngle = 0; 
     durationMillis = 1000; 
     animate(mPrevAngle, mCurrAngle,durationMillis); 
     break; 
    case MotionEvent.ACTION_MOVE: { 
     mPrevAngle = mCurrAngle; 
     mCurrAngle = Math.toDegrees(Math.atan2(x - xc, yc - y)); 
     animate(mPrevAngle, mCurrAngle, 0); 
     if (mCurrAngle>0);{mCurrAngle = mCurrAngle-360;} 
     break; 

现在的问题是myCurrAngle的取值不是从0到-360,而是从0到180,从-1到-180。我试图用上面的代码转换为0-360的值,但现在我已经从-180到-360和从-360到-540的值。我的最终目标是在ACTION_MOVE达到-240°时自动返回到0°(ACTION_UP代码)