其他分享
首页 > 其他分享> > 如何客制化某两个activity切换时的窗口动画?

如何客制化某两个activity切换时的窗口动画?

作者:互联网

[DESCRIPTION]

两个acitivity在做切换时会有一个过渡的窗口动画效果,默认情况下这个窗口动画的动画效果是由framework统一控制的。如果想客制化某两个窗口切换时的动画效果,应该怎么做?

[SOLUTION]

Activity.java中提供了一个可供ap端override窗口切换动画效果的方法:

public void overridePendingTransition(int enterAnim, int exitAnim)

 

以Launcher中使用这个API的代码为例:

// Launcher.java

public void onClickVoiceButton(View v) {

        v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);

 

        try {

            final SearchManager searchManager =

                    (SearchManager) getSystemService(Context.SEARCH_SERVICE);

            ComponentName activityName = searchManager.getGlobalSearchActivity();

            Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);

            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            if (activityName != null) {

                intent.setPackage(activityName.getPackageName());

            }

            startActivity(null, intent, "onClickVoiceButton");

 

   // R.anim.fade_in_fast和R.anim.fade_out_fast分别表示要启动的activity 窗口的enterAnim资源ID和exitAnim资源ID

            overridePendingTransition(R.anim.fade_in_fast, R.anim.fade_out_fast);

        } catch (ActivityNotFoundException e) {

            Intent intent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);

            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            startActivitySafely(null, intent, "onClickVoiceButton");

        }

    }

标签:动画,anim,客制化,fast,intent,fade,activity,Intent
来源: https://blog.csdn.net/nei504293736/article/details/97101965