我有一张要制作动画的图片,然后移动到另一个ImageView位置。
目前,这就是我正在做的事情:
v.animate()
.scaleX(??)
.scaleY(??)
.x(target.x)
.y(target.y)
.setDuration(1000)
.start()
我的问题是如何计算x和y的正确比例因子?如果我将布局参数设置为与目标的布局参数相等,则它可以正常工作,但不会设置动画。我尝试将源图像的宽度和高度与目标图像相除,但是它没有给我正确的比例。
谢谢你的帮助
最佳答案
为两个图像之间的比率创建一个浮点值:
float w_ratio = (targetImage.getMeasuredWidth() - sourceImage.getMeasuredWidth()) / sourceImage.getMeasuredWidth();
float h_ratio = (targetImage.getMeasuredHeight() - sourceImage.getMeasuredHeight()) / sourceImage.getMeasuredHeight();
// then animate:
v.animate().scaleXBy(w_ratio).scaleYBy(h_ratio).setDuration(1000);
// Don't forget to reset the size later if needed, using:
v.setScaleX(1.0f);
v.setScaleY(1.0f);