从左到右无限时间滑动动画

时间:2013-12-06 20:08:50

标签: android alpha translate-animation

我的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>

但问题是如何将图像视图从右边逐渐淡出并再次向左返回并重复时将图像视图重新定位到相同位置。

1 个答案:

答案 0 :(得分:1)

您可以为这两个动画添加Animation Listener

在淡出动画的onAnimationEnd()处,将ImageView的可见性设置为GONE。然后,启动淡入动画,然后在onAnimationStart()上设置ImageViewVISIBLE的可见性。

你根本不需要设置图像的位置,只需让动画做他们的事情。

编辑:

除了淡入淡出之外,

为动画添加翻译组件:

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>