How to perform a fade animation on Activity transition?

前端 未结 4 1824
伪装坚强ぢ
伪装坚强ぢ 2020-11-30 20:13

I am codifiying a transition effect between my logo activity and my Main activity, but I have the problem that before vanish the activity move to top:



        
4条回答
  •  情深已故
    2020-11-30 20:36

    You could create your own .xml animation files to fade in a new Activity and fade out the current Activity:

    fade_in.xml

    
    
    

    fade_out.xml

    
    
    

    Use it in code like that: (Inside your Activity)

    Intent i = new Intent(this, NewlyStartedActivity.class);
    startActivity(i);
    overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
    

    The above code will fade out the currently active Activity and fade in the newly started Activity resulting in a smooth transition.

    UPDATE: @Dan J pointed out that using the built in Android animations improves performance, which I indeed found to be the case after doing some testing. If you prefer working with the built in animations, use:

    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
    

    Notice me referencing android.R instead of R to access the resource id.

    UPDATE: It is now common practice to perform transitions using the Transition class introduced in API level 19.

提交回复
热议问题