2014-10-15 2 views
0

У меня есть этот ImageView
activity1.xmlAndroid Установить ImageView положения без Anim

 <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="300dp" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:src="@drawable/logobrand" 
     android:visibility="visible" /> 

с этим результатом

enter image description here

я анимировать его с этой анимацией
анит. xml

<?xml version="1.0" encoding="utf-8"?> 
<set 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/linear_interpolator" 
android:fillAfter="true"> 

    <translate 
    android:fromXDelta="0%p" 
    android:toYDelta="-35%p" 
    android:duration="1000" /> 
</set> 

Так я получается, что:

enter image description here

, но в моей другой деятельности с тем, как я могу иметь такое же положение моего ImageView без использования анимации?
Activity2.xml

<ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="300dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/logobrand" 
     android:visibility="visible" /> 

Потому что, когда я пытался я получить, что ...

enter image description here

Я ищу, чтобы иметь такую ​​же позицию моей ImageView между обеими деятельности Благодаря

+0

'android: layout_centerHorizontal' не должен быть' android: layout_centerVertical' вместо этого? –

+0

Похоже, вам нужно сопоставить полученную позицию анимированного изображения во втором действии. Не могли бы вы просто изменить высоту на wrap_content и использовать marginTop для достижения той же позиции? – James

ответ

0

в обоих видах деятельности: android:layout_height="300dp" до android:layout_height="wrap_content"
и добавьте вторую активность android:layout_marginto="Xdp", чтобы выглядеть как первая активность!

activity1.xml

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:src="@drawable/logobrand" 
    android:visibility="visible" /> 


activity2.xml

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="35dp" 
    android:src="@drawable/logobrand" 
    android:visibility="visible" /> 

надеюсь, что это поможет

0

Вы можете рассчитать MarginTop для макета (нет необходимости менять любая вещь) нас при этом:

// waiting for layout to be created. 
    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      // top of your logo when when center vertical 
      int originalPosition = iV1.getTop(); 
      System.out.println("original position :: " + originalPosition); 

      // vertical upward shift using your animation property 
      int verticalShift = (int) (parentView.getHeight() * 0.35f);  
      System.out.println("vertical shift :: " + verticalShift); 

      // final margin from top 
      int marginTop = originalPosition - verticalShift; 
      System.out.println("actual margin top :: " + marginTop); 

      // testing it on another view 
      FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) iV2 
        .getLayoutParams(); 
      lp.setMargins(0, originalPosition - verticalShift, 0, 0); 

      iV2.setLayoutParams(lp); 

     } 
    }, 100); 

Надеюсь, это поможет.

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