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