gpt4 book ai didi

android - 平移(曲线路径)+缩放动画Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:58:05 25 4
gpt4 key购买 nike

enter image description here

我想在曲线中平移 ImageView ,同时在平移时缩放它。

我经历过多个帖子喜欢 https://stackoverflow.com/a/30254927/3518278我不知道如何计算我的路径变量

还有它在这里提到android 5在interpolars中提供了基本曲线 https://stackoverflow.com/a/26591870/3518278但它们似乎没有效果。

我当前的代码是

View view;
ValueAnimator animator = ValueAnimator.ofFloat(0, 1); // values from 0 to 1
animator.setDuration(5000); // 5 seconds duration from 0 to 1
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = ((Float) (animation.getAnimatedValue()))
.floatValue();
// Set translation of your view here. Position can be calculated
// out of value. This code should move the view in a half circle.
img_fullscreen_drone.setTranslationX((float)(150.0 * Math.sin(value*Math.PI)));
img_fullscreen_drone.setTranslationY((float)(150.0 * Math.cos(value*Math.PI)));
img_fullscreen_drone.setScaleType(ImageView.ScaleType.CENTER);
img_fullscreen_drone.animate().scaleX(0.5f).scaleY(0.5f).setDuration(5000).start();

}
});

animator.start();

这会将我的 View 平移成弧形,但在平移完成后开始缩放,我希望缩放和沿曲线平移一起发生。

我们将不胜感激

提前致谢

最佳答案

您的原始代码在翻译图像的动画的每一帧重新启动缩放动画。您只需将缩放动画代码移出更新 block ,如下所示。

请注意,您使用了两种略有不同的动画方法,用于缩放与平移,这可能让您感到困惑。

    View view;
ValueAnimator animator = ValueAnimator.ofFloat(0, 1); // values from 0 to 1
animator.setDuration(5000); // 5 seconds duration from 0 to 1
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = ((Float) (animation.getAnimatedValue()))
.floatValue();
// Set translation of your view here. Position can be calculated
// out of value. This code should move the view in a half circle.
img_fullscreen_drone.setTranslationX((float)(150.0 * Math.sin(value*Math.PI)));
img_fullscreen_drone.setTranslationY((float)(150.0 * Math.cos(value*Math.PI)));
}
});

animator.start();

img_fullscreen_drone.setScaleType(ImageView.ScaleType.CENTER);
img_fullscreen_drone.animate().scaleX(0.5f).scaleY(0.5f).setDuration(5000).start();

关于android - 平移(曲线路径)+缩放动画Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37172969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com