我有一张要制作动画的图片,然后移动到另一个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);

10-07 18:17