旋转后ImageView会重置为原始状态吗?

时间:2012-08-28 09:16:24

标签: android rotation

  

可能重复:
  Android: Animation Position Resets After Complete

我使用RotateAnimation来轮播ImageView。代码很简单:

this.button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Animation ani = new RotateAnimation(
                0, /* from degree*/
                30, /* to degree */
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
        ani.setDuration(1000);
        imageView.startAnimation(ani);
    }
});

你可以看到我希望imageView旋转30度。

它可以工作,但是当完成旋转时,图像会在旋转之前返回到原始状态,相同的位置和程度。 我想在最后的动画位置修复ImageView,即想要将图像倾斜30度。 如何解决?

2 个答案:

答案 0 :(得分:18)

我找到了解决方案:

ani.setFillAfter(true);

有效:)

答案 1 :(得分:0)

这是在Android上使用动画时的正常方式。

你可以:

  • 启动一个没有持续时间的新动画,并在“无限”上重复属性,然后在
  • 中旋转图像
  • 在动画结束时手动设置旋转值(但如果我没有错误,如果没有Android 3.0以下的特定动画,则无法执行此操作。)