gpt4 book ai didi

android - 如何对角地翻译图像上的动画?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:53:11 26 4
gpt4 key购买 nike

我想像下图那样沿对角线对图像进行动画处理。我尝试过翻译动画,但我只能做到平行 X 轴或平行 Y 轴。

但无法弄清楚如何对角线进行。而且我也不确定它可以通过翻译动画或其他一些动画来完成。所以请建议我该怎么做,或者如果有人可以给我一个有用的链接,那么我也将有义务。

enter image description here

最佳答案

一种方法是使用 AnimatorSet 一起播放多个 ObjectAnimator

private void animateDiagonalPan(View v) {
AnimatorSet animSetXY = new AnimatorSet();

ObjectAnimator y = ObjectAnimator.ofFloat(v,
"translationY",v.getY(), targetY);

ObjectAnimator x = ObjectAnimator.ofFloat(v,
"translationX", v.getX(), targetX);

animSetXY.playTogether(x, y);
animSetXY.setInterpolator(new LinearInterpolator(1f));
animSetXY.setDuration(300);
animSetXY.start();
}

或者您可以使用自定义 View 和自定义 Property,但在这种情况下,您需要自己计算 X 和 Y 上的平移:

final Property<YourView, Float> transProperty = new Property<YourView, Float>(
float.class, "translation") {
@Override
public Float get(YourView) {
return object.getTranslation();
}

@Override
public void set(YourView, Float value) {
object.translate(value);
}
};

private void translate(float value){
setTranslationX(value);
setTranslationY(value);
}

并用它来制作动画:

private void animateDiagonalPan(View v) {

ObjectAnimator xy = ObjectAnimator.ofFloat(v,
transProperty, targetValue);

xy.setInterpolator(new LinearInterpolator(1f));
xy.setDuration(300);
xy.start();
}

关于android - 如何对角地翻译图像上的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23603813/

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