我的imageview中有一个relativelayout,我的要求是:
我想从左到右滑动imageview并淡出,再次从左,淡出从左到右滑动并淡出

 ----                           ----
|    |   swipe left to right   |    |  Fade out here
|    |   --> ---> --->         |    |
|    |                         |    |
 ----                           ----

从左侧再次淡入并重复:
 ----                           ----
|    |   swipe left to right   |    |  Fade out here
|    |   --> ---> --->         |    |
|    |                         |    |
 ----                           ----

这个问题和堆栈上的任何其他问题都不匹配,所以不要试图标记它。
我知道,我可以用这个:
这是从左到右的动画:
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate android:fromXDelta="-100%" android:toXDelta="0%"
             android:fromYDelta="0%" android:toYDelta="0%"
             android:duration="700"/>
</set>

对于淡入淡出效果:
fadein.xml

    <?xml version="1.0" encoding="UTF-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android">
         <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
          android:interpolator="@android:anim/accelerate_interpolator"
          android:duration="2000"/>
     </set>
fadeout.xml

    <?xml version="1.0" encoding="UTF-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android">
         <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
          android:interpolator="@android:anim/accelerate_interpolator"
          android:duration="2000"/>
     </set>

但问题是如何将图像视图从右侧淡出后重新定位到相同的位置,然后再次从左侧返回并重复。

最佳答案

您可以将Animation Listener添加到两个动画中。
在淡出动画的onAnimationEnd()处,将ImageView的可见性设置为GONE。然后,开始淡入动画,并在onAnimationStart()上设置ImageView的可见性为VISIBLE
你根本不需要设置图像的位置,只要让动画做他们的事情。
编辑:
除了淡入度之外,还可以在动画中添加翻译组件:

fadein.xml

<?xml version="1.0" encoding="UTF-8"?>
   <set xmlns:android="http://schemas.android.com/apk/res/android"
      android:interpolator="@android:anim/accelerate_interpolator">
     <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
      android:duration="2000" />
     <translate android:fromXDelta="-100%" android:toXDelta="0%"
      android:duration="700" />
 </set>

fadeout.xml

<?xml version="1.0" encoding="UTF-8"?>
   <set xmlns:android="http://schemas.android.com/apk/res/android"
      android:interpolator="@android:anim/accelerate_interpolator" >
     <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
      android:duration="2000"/>
     <translate android:fromXDelta="0%" android:toXDelta="100%"
      android:duration="700"/>
 </set>

10-07 17:21