2012-05-02 102 views
0

我試圖旋轉3 imageViews並使用rotateAnimation。我計算每30ms旋轉的度數。如果角度改變,我創建了rotateAnimation:RotateAnimation.setFillAfter(true)和.setFillEnabled(true)不起作用

rpmAnim=new RotateAnimation((float)Rpmcurrentdegree, (float)Rpmdegree, ivNadel.getWidth()/2, ivNadel.getHeight()/2); 
rpmAnim.setFillEnabled(true); 
rpmAnim.setFillAfter(true); 

...然後我開始的ImageView的動畫:

ivNadel.startAnimation(rpmAnim); 

旋轉工作正常,但當度改變,它會跳回到起始位置。有誰知道爲什麼?

回答

0

設置rpmAnim的setAnimationListener:

rpmAnim.setAnimationListener(new AnimationListener() { 
     @Override 
     public void onAnimationEnd(Animation arg0) { 

      // here rotate the image 

     } 

     @Override 
     public void onAnimationRepeat(Animation animation) {} 
     @Override 
     public void onAnimationStart(Animation animation) {} 
    }); 

旋轉圖像,你可以

  1. 爲了擴展的ImageView創建自定義圖像視圖
  2. 覆蓋的onDraw
  3. 集你的旋轉角度
  4. 無效您的自定義圖像視圖

的覆蓋onDraw可能看起來像:

protected void onDraw(Canvas canvas) { 
    canvas.save() 
    canvas.rotate(your rotation angle...) 
    super.onDraw(canvas) 
    canvas.restore() 
} 
相關問題