启动活动动画问题 - android

时间:2015-11-26 12:42:35

标签: android android-animation

我正在创建一个Android应用程序。现在我想打开一个带有缩放转换的新活动,使用以下代码来实现,但它不起作用。

private void centerAndZoomView( View view)
    {
        LinearLayout root = (LinearLayout) findViewById( R.id.top_root );
        DisplayMetrics dm = new DisplayMetrics();
        this.getWindowManager().getDefaultDisplay().getMetrics( dm );
        int statusBarOffset = dm.heightPixels - root.getMeasuredHeight();

        int originalPos[] = new int[2];
        view.getLocationOnScreen( originalPos );

        int xDest = dm.widthPixels/2;
        xDest -= (view.getMeasuredWidth()/2);
        int yDest = dm.heightPixels/2 - (view.getMeasuredHeight()/2) - statusBarOffset;

        TranslateAnimation anim = new TranslateAnimation( 0, xDest - originalPos[0] , 0, yDest - originalPos[1] );

        Animation scale
          = new ScaleAnimation(1.0f,root.getMeasuredWidth()/view.getMeasuredWidth() , 1.0f, root.getMeasuredHeight()/view.getMeasuredHeight(),
                               Animation.RELATIVE_TO_SELF, 0.5f,
                               Animation.RELATIVE_TO_SELF, 0.5f);


        scale.setInterpolator(new AccelerateInterpolator());

        AnimationSet set = new AnimationSet(true);

        set.addAnimation(anim);
        set.addAnimation(scale);


        set.setFillAfter(false);

        set.setDuration(7000);
        set.start();


        view.startAnimation(set);
        set.setAnimationListener(new AnimationListener()
        {
            @Override
            public void onAnimationStart(Animation animation){}

            @Override
            public void onAnimationRepeat(Animation animation){}

            @Override
            public void onAnimationEnd(Animation animation)
            {
                callIntent();


            }
        });

    }

基本上我想要具有缩放效果的新活动的效果。但是现在我当前点击的按钮只能缩放。我怎样才能做到这一点?请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

startActivity(intent);
overridePendingTransition(animationIn,animationOut);

zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" >
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="3"
android:toYScale="3" >
</scale>

zoom_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" >
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.5"
android:toYScale="0.5" >
</scale>