我在我的观点上运行摇动动画:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromDegrees="-5"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toDegrees="5" />
我根据用户需求取消动画,但视图在停止时保持旋转状态,我不想恢复原状。
以下是我停止动画的方式:
if (animation != null) {
animation.cancel();
animation.reset();
}
我无法使用setRotation()
,因为我的最低API为9。
我怎样才能做到这一点?
答案 0 :(得分:1)
尝试view.clearAnimation()
方法,清除视图上动画的所有效果
答案 1 :(得分:0)
您是否尝试过setRotation(0,0f);
?
编辑: 我知道,这需要API 11,您需要API 9及更高版本。 (在2014年支持API的宝贵理由很少,但是好吧,我们总是不能指明这一点。)也许是子类动画,这样当你&#34;取消&#34;它只是动画为0的旋转,然后调用super.cancel()。
答案 2 :(得分:0)
我使用了这个方法(代码在继承自View
的类中):
private void returnToOriginalRotationState() {
RotateAnimation animation = new RotateAnimation(0.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f);
animation.setInterpolator(new LinearInterpolator());
animation.setDuration(1);
animation.setFillAfter(true);
startAnimation(animation);
}