2014-12-02 3 views
5

У меня есть два вида в разных макетах. Я хочу переместить один в другой. Что случилось с моим кодом? Y анимация играет неправильно. Первый вид расположен в макете фрагмента, второй в строке состоянияандроидная анимация переместить взгляд на другой вид

... 
    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

Как это играть не так? – Whitney

+0

@Whitney он должен перейти в угол экрана, но y не растет – punksta

+0

, пожалуйста, см. Мой ответ, это напрямую связано: https://stackoverflow.com/a/47593484/2606290 – Fer

ответ

14

У меня есть другое решение для Вас: (переместить viewOne в 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

извините, я пробовал этот код, но есть не работает, как следует делать. У меня есть изображение, и я хочу переместить его на другой вид неподвижного изображения , но на самом деле он перемещает мое изображение по-разному на диагональной стороне вверх –

Смежные вопросы