Android Activity切換動畫是指從Activity A 跳轉至Activity B的時候,Activity A 有退齣動畫,Activity B 有進入動畫。這個動畫的實現很簡單,在startActivity(intent)之後調overridePendingTransition ()這個方法就行。比如實現淡入淡出的效果如下:
Intent i = new Intent(ActivityA.this,ActivityB.class);
StartActivity.this.startActivity(i);
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
不過有時候overridePendingTransition 這個函數會不起作用,總結下,大概是以下三個方面的原因:
1、android系統版本2.0以下,這個沒辦法,想其他辦法解決切換動畫吧。
2、在ActivityGroup等的嵌入式Activity中,這個比較容易解決,用如下方法就可以了:
this.getParent().overridePendingTransition 就可以解決。
3、在一個Activity的內部類中,或者匿名類中,這時候只好用handler來解決了。
我這裡用到的是後退時的轉場效果,即什麼都沒做的情況下:
代碼如下,很簡單:
[cpp]
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.back:
this.finish();
overridePendingTransition(0, R.anim.push_up_out);
break;
default:
break;
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.back:
this.finish();
overridePendingTransition(0, R.anim.push_up_out);
break;
default:
break;
}
}