我想要rotate
imageview
然后我想开始activity
on imageview
但问题是android系统没有给出时间来完成animation
并启动活动。那么如何完全显示动画然后调用活动。
这是我的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200"
android:fromDegrees="-7"
android:pivotX="50%"
android:pivotY="50%"
android:repeatMode="reverse"
android:toDegrees="7" />
这段代码:
public void onImageViewClicked(View view){
switch(view.getId()){
case R.id.viewstock:
Animation shakeV = AnimationUtils.loadAnimation(this, R.anim.shake);
view.startAnimation(shakeV);
startActivityForResult(intent, 12);
break;
case R.id.about:
Animation shakeA = AnimationUtils.loadAnimation(this, R.anim.shake1);
view.startAnimation(shakeA);
Intent aboutIntent = new Intent(MainActivity.this,AboutActivity.class);
startActivity(aboutIntent);
break;
}
}
答案 0 :(得分:3)
您是否可以提供代码段来支持您的问题。因此,了解如何处理动画会更容易。
现在我假设您正在使用标准动画。如果是这种情况,请使用Animation.AnimationListener
来监听onAnimationEnd(Animation animation)
。在那里你开始你的活动。
有关详情this。
希望这会对你有帮助。
答案 1 :(得分:3)
shakeA.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Start your activity here.
startActivity(aboutIntent); // Here you go.
}
})
答案 2 :(得分:0)
我想最好设置开始活动的持续时间
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(aboutIntent);
}
}, 2000);
}
@Override
public void onAnimationRepeat(Animation animation) {
}