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