TextView在android中旋转后返回

时间:2012-10-10 12:12:59

标签: android eclipse animation

这是我用于旋转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度时,它会在旋转前返回到原始状态。

我希望它从最后一个状态开始旋转。

3 个答案:

答案 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;

    }
};