when i am doing 3d transition the animation gets stop for sometime
<p>when i am doing 3d transition the view is stopping for some time and then rotating the two view contain first view a listview and map and second view a list view both views are interacting with database
<br><br>
(code block fixed)</p>

<pre><code>/**
 * Setup a new 3D rotation on the container view.
 *
 * @param position the item that was clicked to show a picture, or -1 to show the list
 * @param start the start angle at which the rotation must begin
 * @param end the end angle of the rotation
 */

private void applyRotation(int position, float start, float end) {
    // Find the center of the container
    final float centerX = mContainer.getWidth() / 2.0f;
    final float centerY = mContainer.getHeight() / 2.0f;

    final float centerX2 = mContainerView.getWidth() / 2.0f;
    final float centerY2 = mContainerView.getHeight() / 2.0f;

    // Create a new 3D rotation with the supplied parameter
    // The animation listener is used to trigger the next animation
    final Rotate3dAnimation rotation =
            new Rotate3dAnimation(start, end, centerX, centerY, 310.0f, true);
    rotation.setDuration(500);
    rotation.setFillAfter(true);
    rotation.setInterpolator(new AccelerateInterpolator());
    rotation.setAnimationListener(new DisplayNextView(position));

    mContainer.startAnimation(rotation);

    //for view
    final Rotate3dAnimation rotation2 =
            new Rotate3dAnimation(start, end, centerX2, centerY2, 310.0f, true);
    rotation2.setDuration(500);
    rotation2.setFillAfter(true);
    rotation2.setInterpolator(new AccelerateInterpolator());
    //rotation2.setAnimationListener(new DisplayNextView(position));
    mContainerView.startAnimation(rotation2);
}

/**
 * This class listens for the end of the first half of the animation.
 * It then posts a new action that effectively swaps the views when the container
 * is rotated 90 degrees and thus invisible.
 */

private final class DisplayNextView implements Animation.AnimationListener {
    private final int mPosition;

    private DisplayNextView(int position) {
        mPosition = position;
    }

    public void onAnimationStart(Animation animation) {
    }

    public void onAnimationEnd(Animation animation) {
        mContainer.post(new SwapViews(mPosition));
    }

    public void onAnimationRepeat(Animation animation) {
    }
}

/**
 * This class is responsible for swapping the views and start the second
 * half of the animation.
 */

private final class SwapViews implements Runnable {
    private final int mPosition;

    public SwapViews(int position) {
        mPosition = position;
    }

    public void run() {
        final float centerX = mContainer.getWidth() / 2.0f;
        final float centerY = mContainer.getHeight() / 2.0f;
        Rotate3dAnimation rotation;

        final float centerX2 = mContainerView.getWidth() / 2.0f;
        final float centerY2 = mContainerView.getHeight() / 2.0f;
        Rotate3dAnimation rotation2;

        if (mPosition==2) {
            mButtonCounty.setVisibility(Button.GONE);
            mButtonRadar.setVisibility(Button.VISIBLE);
            mButtonRadar.requestFocus();

            mNearShopsView.setVisibility(LinearLayout.GONE);
            mCountyListView.setVisibility(RelativeLayout.VISIBLE);
            mCountyListView.requestFocus();

            rotation = new Rotate3dAnimation(90, 180, centerX, centerY, 310.0f, false);

            rotation2 = new Rotate3dAnimation(90,180, centerX2, centerY2, 310.0f, false);
        } else {
            mButtonRadar.setVisibility(Button.GONE);
            mButtonCounty.setVisibility(Button.VISIBLE);
            mButtonCounty.requestFocus();

            mCountyListView.setVisibility(RelativeLayout.GONE);
            mNearShopsView.setVisibility(LinearLayout.VISIBLE);
            mNearShopsView.requestFocus();

            rotation = new Rotate3dAnimation(90, 0, centerX, centerY, 310.0f, false);
            rotation2 = new Rotate3dAnimation(90,0, centerX2, centerY2, 310.0f, true);
        }

        rotation.setDuration(50);
        rotation.setFillAfter(false);
        rotation.setInterpolator(new DecelerateInterpolator());

        mContainer.startAnimation(rotation);

        rotation2.setDuration(50);
        rotation2.setFillAfter(false);
        rotation2.setInterpolator(new DecelerateInterpolator());

        mContainerView.startAnimation(rotation2);
    }
}
</code></pre>
