我想将2个备用旋转动画应用于视图。每次旋转都应在单击同一视图后开始。
我正在寻找的结果是:
问题在于,当用户执行第二次单击时,Button会在正确开始动画之前重置为初始方面。
我的目标是Android API< 11所以我正在使用startAnimation()方法。动画应用于按钮定义,如下所示:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
动画如下
rotate_cw.xml(0°到135°旋转):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<rotate
android:duration="300"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="135" />
</set>
rotate_ccw.xml(旋转135°到0°):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="300"
android:fromDegrees="135"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="0"/>
</set>
然后以这种方式应用动画,其中flag是布尔全局变量:
Button b = (Button) findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (flag) {
Animation a = AnimationUtils.loadAnimation(this, R.anim.rotate_cw);
b.startAnimation(a);
} else {
Animation a = AnimationUtils.loadAnimation(this, R.anim.rotate_ccw);
b.startAnimation(a);
}
flag = !flag;
}
});
我错过了什么吗?
提前感谢您的帮助。