这是我用于旋转TextView的xml:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fillAfter="true"
android:fromDegrees="0"
android:interpolator="@android:anim/accelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="180" />
当我按下'旋转'按钮时,TextView将正常旋转,旋转后,当旋转角度为180时,它将垂直翻转。
问题是当我再次按下按钮将其再旋转180度时,它会在旋转前返回到原始状态。
我希望它从最后一个状态开始旋转。
答案 0 :(得分:0)
查看此SO答案。我认为你需要的属性是:
fillAfter=true
fillEnabled=true
How can I animate a view in Android and have it stay in the new position/size?
答案 1 :(得分:0)
你应该创建更多的xml文件..但最好的选择是用语法来做,我相信它会起作用。
答案 2 :(得分:0)
感谢您的回复,现在我可以说:
int x = 0, y = 180; // global variables
然后:
RotateAnimation a = new RotateAnimation(x, y,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
a.setFillEnabled(true);
a.setFillAfter(true);
a.setDuration(1000);
a.setAnimationListener(onRotation);
txtView.startAnimation(a);
然后:
AnimationListener onRotation = new AnimationListener() {
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
public void onAnimationEnd(Animation animation) {
x += 180;
y += 180;
}
};