Android视图上的上下动画
我正在制作一个闪屏,我希望图像视图能像悬浮一样不断上升然后下降。这将在后台异步任务中加载数据库时发生。我尝试过为视图设置动画,但它只在一个方向上设置一次。我如何做到这一点?提前感谢:D自下而上:Android视图上的上下动画,android,animation,android-animation,Android,Animation,Android Animation,我正在制作一个闪屏,我希望图像视图能像悬浮一样不断上升然后下降。这将在后台异步任务中加载数据库时发生。我尝试过为视图设置动画,但它只在一个方向上设置一次。我如何做到这一点?提前感谢:D自下而上: <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:int
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0%p" />
自下而上:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="100%p"
android:toYDelta="0%p" />
我要做的是像您以前一样设置视图的动画,在AnimationEnd中有一种无限循环:
//in onPreExecute do levitate(ivSplashLogo, 300, true)
//in onPostExecute do levitate(ivSplashLogo, 300, false)
public void levitate (final View movableView,final float Y,boolean animated){
if(animated) {
final long yourDuration = 200;
final TimeInterpolator yourInterpolator = new DecelerateInterpolator();
movableView.animate().
translationYBy(Y).
setDuration(yourDuration).
setInterpolator(yourInterpolator).
setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
levitate(movableView, -Y, true);
}
});
}
}
我还没有试过,但你可以试一试,告诉我我要做的是像你以前做的那样设置视图的动画,在AnimationEnd中有一种无限循环:
//in onPreExecute do levitate(ivSplashLogo, 300, true)
//in onPostExecute do levitate(ivSplashLogo, 300, false)
public void levitate (final View movableView,final float Y,boolean animated){
if(animated) {
final long yourDuration = 200;
final TimeInterpolator yourInterpolator = new DecelerateInterpolator();
movableView.animate().
translationYBy(Y).
setDuration(yourDuration).
setInterpolator(yourInterpolator).
setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
levitate(movableView, -Y, true);
}
});
}
}
我还没有尝试过这个,但你可以试一试,告诉我我不知道插值器的用途以及它与持续时间的区别。插值器是一条贝塞尔曲线,将对动画应用不同的效果。是一个视频,将向您显示各种插值器的结果。这是你想看的照片。谢谢我在OnProgressUpdate中调用它,但它没有移动:我不知道插值器的作用以及它与持续时间的区别。插值器是一条贝塞尔曲线,它将对动画应用不同的效果。是一个视频,将向您显示各种插值器的结果。这是你想看的照片。谢谢我从OnProgressUpdate中调用它,但它没有移动:我编辑了我的答案并更改了代码。我所要做的只是更改时间,但它可以按照我想要的方式工作。非常感谢DI编辑了我的答案并修改了代码。我所要做的就是改变时间,但它按照我的意愿工作。非常感谢D