我为Android播放动画创建了一个简单的应用程序,有alpha,traslate和rotate。
这是一个有三个按钮的视图(每个动画一个)。当我点击它时,它会启动动画并显示一个红色按钮,而不是取消它。
我的问题是,当我取消alha动画并启动其他时,这个显示透明度就像我关闭它时的alpha动画。
我使用了setalpha和更多代码来控制它,但我永远无法控制它。
非常感谢。
课程代码
public void onClick(View v) {
close = (Button) findViewById(R.id.close);
image = (ImageView) findViewById(R.id.View);
image.setEnabled(true);
switch (v.getId()) {
case R.id.Alpha:
animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
close.setVisibility(View.VISIBLE);
close.setOnClickListener(this);
close.setEnabled(true);
break;
case R.id.Rotate:
animation = AnimationUtils.loadAnimation(this, R.anim.rotate);
close.setVisibility(View.VISIBLE);
close.setOnClickListener(this);
close.setEnabled(true);
break;
case R.id.Traslate:
animation = AnimationUtils.loadAnimation(this, R.anim.traslate);
close.setVisibility(View.VISIBLE);
close.setOnClickListener(this);
close.setEnabled(true);
break;
case R.id.Close:
close.setVisibility(View.INVISIBLE);
close.setEnabled(false);
image.setEnabled(false);
image.clearAnimation();
break;
}
if (close.isEnabled()) {
animation.reset();
image.setOnClickListener(this);
image.clearAnimation();
image.startAnimation(animation);
}
}
}
alpha xml代码
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="3000"/>
<alpha
android:startOffset="5000"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="3000"/>
</set>
旋转代码xml
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<rotate
android:fromDegrees="90"
android:toDegrees="0"
android:pivotX="-5%"
android:pivotY="5%p"
android:duration="3000" />
<rotate
android:fromDegrees="0"
android:toDegrees="90"
android:pivotX="5%"
android:pivotY="-5%p"
android:duration="3000"
android:startOffset="5000" />
</set>
这不是我的预期,但我已经修复了它,它会启动一个新的alpha动画,持续时间为1,从alpha 0到1。