java - 如何在java中重复Android动画?
问题描述
我这里有这个代码。我希望 Imageview 做 5 次动画。我需要如何设置 setRepeatCount?怎么消毒呢?
private void flipCoin() {
final Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher_background);
final ImageView iv = ((ImageView) findViewById(R.id.imageView));
iv.setRotationY(0f);
//iv.animate().setDuration(10);
iv.animate().rotationY(90f).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
iv.setImageDrawable(drawable);
iv.setRotationY(270f);
iv.animate().rotationY(360f).setListener(null);
}
@Override
public void onAnimationCancel(Animator animation) {
}
});
解决方案
方法 setRepeatCount 属于Animation类,您正在使用Animator。
尝试这个:
int times = 5;
private void flipCoin() {
final Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher_background);
final ImageView iv = findViewById(R.id.imageView);
iv.setRotationY(0f);
//iv.animate().setDuration(10);
final ViewPropertyAnimator viewPropertyAnimator = iv.animate();
viewPropertyAnimator.rotationY(90f);
viewPropertyAnimator.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
times--;
if (times > 0) {
iv.setImageDrawable(drawable);
iv.setRotationY(270f);
viewPropertyAnimator.rotationY(360f);
viewPropertyAnimator.start(); //Restart
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
});
viewPropertyAnimator.start(); //Init
}
推荐阅读
- servlets - ClassNotFoundException ===> com.sun.jersey.api.NotFoundException
- firebase - 在设定的时间后仅运行一次 cron 作业
- filter - 从以特定字符开头的多行单元格中提取行
- java - Java Socket 节点(代理)连接到尚未激活的节点
- javascript - 如果 URL 包含这些字词,则隐藏 div
- c# - 在没有 Active Directory 的情况下管理我的 Windows 应用程序逻辑中的用户
- python - Webapp2 Python set_cookie 不支持同站点cookie?
- python - 在我的案例中,如何使用附加字段设置多对多
- apache-spark - 为什么第一次和第二次执行spark sql查询的执行时间不同?
- python - Python attrs 类属性缓存延迟加载