RotateAnimation.setFillAfter(true)和.setFillEnabled(true)不起作用

时间:2012-05-02 08:33:54

标签: android image animation imageview rotateanimation

我正在尝试使用imageViews轮播3 rotateAnimation。我计算每30ms旋转的度数。如果角度改变了,我创建了rotateAnimation:

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

...然后我开始使用imageView的动画:

 ivNadel.startAnimation(rpmAnim);

旋转工作正常,但当更改时,它会跳回到其起始位置。有谁知道为什么?

1 个答案:

答案 0 :(得分: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. 使您的自定义图片视图无效
  5. 被覆盖的onDraw可能如下所示:

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