2012-05-02 159 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() 
} 
相关问题