2013-04-24 55 views
2

我想要將屏幕中間的兩幅圖像製作成彼此相反的動畫。像下面的圖片。如何將兩個圖像視圖從中心動畫到彼此相反?

enter image description here

無論我迄今所做的是正確的,現在我是從左至右,反之亦然能夠有生只有一個形象,但現在我想從中間動畫。

這裏是我的代碼:

b1 = (Button) findViewById(R.id.button1); 
     logo = (ImageView) findViewById(R.id.imageView1); 

     Display display = getWindowManager().getDefaultDisplay(); 
     width = display.getWidth(); 
     final Animation posX = new TranslateAnimation(0, width - 50, 0, 0); 
     posX.setDuration(1500); 
     posX.setFillAfter(true); 

     b1.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       logo.startAnimation(posX); 
       logo.setVisibility(View.VISIBLE); 
      } 
     }); 

編輯:

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="40dp" 
     android:background="@drawable/set_user_profile_back" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="50dp" 
      android:contentDescription="@string/hello_world" 
      android:src="@drawable/prev_btn" /> 

     <ImageView 
      android:id="@+id/ImageView01" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/imageView1" 
      android:contentDescription="@string/hello_world" 
      android:src="@drawable/next_btn" /> 
    </RelativeLayout> 

感謝

+0

你必須使用對象的動畫,它可以在同一時間動畫多個項目。 – 2013-04-24 12:25:53

+0

給每個圖像一個動畫偵聽器,每個圖像都有特定的轉換值 – 2013-04-24 12:27:57

+0

@AndroidDeveloper如果您可以提供任何相關鏈接 – juned 2013-04-24 12:32:00

回答

4
ImageView img1 = findViewById(R.id.img1); 
    ImageView img2 = findViewById(R.id.img2); 

     Animation img1_Anim = AnimationUtils.loadAnimation(this, 
       R.anim.img1_animation); 
     img1_Anim.setAnimationListener(AnimationListener); 
     img1.startAnimation(img1_Anim); 

Animation img2_Anim = AnimationUtils.loadAnimation(this, 
       R.anim.img2_animation); 
     img2_Anim.setAnimationListener(AnimationListener); 
     img2.startAnimation(img2_Anim); 

    private AnimationListener AnimationListener = new AnimationListener() { 

      @Override 
      public void onAnimationStart(Animation animation) { 

      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 


      } 
     }; 

img1_animation

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

    <translate 
     android:duration="500" 
     android:fromXDelta="50%" 
     android:toXDelta="0%" /> 



</set> 

img2_animation

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

    <translate 
     android:duration="500" 
     android:fromXDelta="50%" 
     android:toXDelta="100%" /> 



</set> 
+0

感謝您的代碼,圖像是動畫,但從上到下,反之亦然,我想左動畫right,反之亦然 – juned 2013-04-24 12:56:04

+0

哦,我很抱歉,你必須在x軸上進行翻譯不是y – 2013-04-24 12:57:00

+0

我編輯了我的答案:) – 2013-04-24 12:57:32