如何在两个动画之间延迟
How to delay between two animation
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity
{
public void fade(View view)
{
ImageView link=findViewById(R.id.link);
link.animate().scaleX(1f).scaleY(1f).setDuration(2000);
link.animate().rotation(180f).setDuration(2000);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView link=findViewById(R.id.link);
link.setScaleX(.2f);
link.setScaleY(.2f);
}
}
我一直在尝试扩大图像然后旋转它,但图像似乎同时旋转和扩大。关于如何在两个动画之间延迟的任何建议。
您可以使用几个选项来实现此目的:
- 使用AnimatorSet。它是协调动画的特殊 class 设计器。缺点是它不能与
ValuePropertyAnimator
s 一起使用,因此您必须手动设置视图动画。
- 当 运行 首次观看动画时使用
withEndAction(Runnable)
。在runnable参数中,启动第二个动画即可。
- 在 运行 您的第一个动画时使用
setListener(AnimatorListener)
。覆盖 onAnimationEnd()
并开始你的第二个动画。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity
{
public void fade(View view)
{
ImageView link=findViewById(R.id.link);
link.animate().scaleX(1f).scaleY(1f).setDuration(2000);
link.animate().rotation(180f).setDuration(2000);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView link=findViewById(R.id.link);
link.setScaleX(.2f);
link.setScaleY(.2f);
}
}
我一直在尝试扩大图像然后旋转它,但图像似乎同时旋转和扩大。关于如何在两个动画之间延迟的任何建议。
您可以使用几个选项来实现此目的:
- 使用AnimatorSet。它是协调动画的特殊 class 设计器。缺点是它不能与
ValuePropertyAnimator
s 一起使用,因此您必须手动设置视图动画。 - 当 运行 首次观看动画时使用
withEndAction(Runnable)
。在runnable参数中,启动第二个动画即可。 - 在 运行 您的第一个动画时使用
setListener(AnimatorListener)
。覆盖onAnimationEnd()
并开始你的第二个动画。