Activity和Fragment的转场动画

Activity设置转场动画需要在startActivity和finish之后,意为给开启新视图或关闭旧视图添加转场动画。

这是Acitivity通过overridePending方法,设置进和出:

//新acitivity从以后边向左边滑入页面
startActitivity(MainAcitity.this, NewActivity.class);
overridePendingTransition(R.anim.push_left_in_no_alph,
            R.anim.push_left_out_no_alpha);

//需要销毁的Activity向右边屏幕边缘滑出页面
finish();
overridePendingTransition(R.anim.push_right_in_no_alpha,
                R.anim.push_right_out_no_alpha);

//让返回键也执行动画
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
    overridePendingTransition(R.anim.push_right_in_no_alpha,
            R.anim.push_right_out_no_alpha);
}

Fragment的设置需要在transaction.add 或transaction.remove之前。
Fragment有两种方式,一种android提供了默认方法,一种自定义动画

//淡入淡出的默认动画
transaction = getSupportFragmentManager().beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);

//设置自定义过场动画
transaction.setCustomAnimations(            
            R.anim.push_left_in,
            R.anim.push_left_out,
            R.anim.push_left_in,
            R.anim.push_left_out);

动画文件放置位置: res/anim: 这是兼容API-11以下的,只能有四种补间动画方式

//push_left_in_no_alpha,acitivity转场的时候用alpha会不好看


    


//push_left_out_no_alpha

    


//push_right_in_no_alpha

    


//push_right_out_no_alpha

    

用set标签的意思是可以集合多个动画一起执行,也可以自行选择单个动画,如alpha等。

你可能感兴趣的:(Activity和Fragment的转场动画)