2014-12-02 12 views
5

Ho due viste in layout diversi che voglio spostare l'una sull'altra. Cosa c'è che non va nel mio codice? L'animazione Y è errata. Prima View si trova nel layout del frammento, la seconda nella barra di statoanimazione android sposta la vista a un'altra vista

... 
    int p1[] = new int[2]; 
    int p2[] = new int[2]; 
    viewOne.getLocationInWindow(p1); 
    viewTwo.getLocationInWindow(p2); 


    AnimatorSet animatorSet = new AnimatorSet(); 
    animatorSet 
      .play(ObjectAnimator.ofFloat(expandedImageView, "X", p1[0], p2[0] - p1[0])) 
      .with(ObjectAnimator.ofFloat(expandedImageView, "Y", p1[1], p2[1] - p1[1])) 
      .with(ObjectAnimator.ofFloat(expandedImageView, View.SCALE_X, startScale)) 
      .with(ObjectAnimator.ofFloat(expandedImageView, View.SCALE_Y, startScale)); 
+0

Come ci si gioca male? – Whitney

+0

@Whitney dovrebbe spostarsi verso l'angolo dello schermo, ma y non cresce – punksta

+0

per favore vedi la mia risposta, è direttamente correlata: https://stackoverflow.com/a/47593484/2606290 – Fer

risposta

14

ho una un'altra soluzione per voi: (spostare viewOne a viewTwo)

TranslateAnimation animation = new TranslateAnimation(0, viewTwo.getX()-viewOne.getX(),0 , viewTwo.getY()-viewOne.getY()); 
    animation.setRepeatMode(0); 
    animation.setDuration(3000); 
    animation.setFillAfter(true); 
    viewOne.startAnimation(animation); 
+0

scusa, ho provato questo codice ma è non funziona come deve fare il lavoro. ho una vista di immagini e voglio spostarla nell'altra vista dell'immagine fissa ma in effetti sta spostando la mia immagine in qualche modo sul lato diagonale verso l'alto –

Problemi correlati