2015-11-09 1 views
0

Je souhaite implémenter une animation de bascule 3D sur deux vues d'image à l'intérieur d'un fragment. J'ai deux images d'un corps humain, c'est-à-dire avant et arrière. Ce que je veux, c'est retourner l'image avant vers l'arrière lorsque l'utilisateur clique sur un bouton. Et toutes ces choses sont à l'intérieur d'un fragment d'onglet.Animation de bascule 3D à l'intérieur d'un fragment

Je suis à la recherche de cela de plus de 1 heure, mais n'a rien obtenu d'utile. J'ai eu quelques résultats liés à hoe pour mettre en œuvre l'animation de flip 3d avec des fragments à l'intérieur, mais n'a rien obtenu en rapport avec ce que je veux.

S'il vous plaît quelqu'un peut-il m'aider avec cela?

Merci

Répondre

2

Je pense que vous cherchez quelque chose comme ça.

image1 = (ImageView) findViewById(R.id.ImageView01); 
image2 = (ImageView) findViewById(R.id.ImageView02); 
image2.setVisibility(View.GONE); 



image1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
    if (isFirstImage) {  
    applyRotation(0, 90); 
    isFirstImage = !isFirstImage; 

    } else {  
    applyRotation(0, -90); 
isFirstImage = !isFirstImage; 
} 
} 
});  




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

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

if (isFirstImage) 
{ 
image1.startAnimation(rotation); 
} else { 
image2.startAnimation(rotation); 
} 

} 

vous pouvez trouver la source complète d'ici http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html

Espérons que cela peut aider la chance you.Good

+0

Super. Ça m'a aidé aussi. Merci –

1

animations "Flip" sont assez simples avec ObjectAnimator. Un exemple d'implémentation pourrait être:

ObjectAnimator animator = ObjectAnimator.ofFloat(mImageView, "rotationY", 0F, 360F); 
animator.setDuration(1000); 
animator.setInterpolator(new AccelerateDecelerateInterpolator()); 
animator.start(); 

Cela devrait retourner votre ImageView et vous donner un endroit pour commencer.

Edit: Vous pourriez peut-être retourner la première ImageView par 180F (de sorte qu'il devienne effectivement invisible), puis utilisez un AnimatorListener pour lancer une autre flip sur la deuxième ImageView, aussi par 180F, il apparaît une image a fait la transition dans l'autre.

+0

Est-il possible de le mettre en œuvre dans un fragment? Pouvez-vous m'aider avec un tutoriel? Pour qu'il soit facile pour moi de le comprendre et de l'implémenter – User0706

+1

@Arpita Qu'entendez-vous par "à l'intérieur d'un fragment"? Utiliser 'ObjectAnimator' sur un' ImageView' à l'intérieur d'un 'Fragment' ne devrait pas être différent de l'intérieur d'une' Activity'? – PPartisan

+0

C'est comme j'ai mis en place des pattes coulissantes avec tiroir de navigation. Et je veux ajouter une animation 3D flip entre les images à l'intérieur d'un des fragments de l'onglet coulissant. – User0706