android – 如何在对角线上翻译图像上的动画?

android – 如何在对角线上翻译图像上的动画?,第1张

概述我想对角线下的图像进行动画制作,如下图所示.我试过翻译动画,但我只能做平行的X轴或平行的Y轴. 但无法弄清楚如何对角地做到这一点.而且我也不确定是否可以通过翻译动画或其他类型的动画来完成.所以请建议我怎么做,或者如果有人能给我一个有用的链接,那么我也会被瞄准. 一种方法是使用AnimatorSet一起播放更多的ObjectAnimator. private void animateDiagonal 我想对角线下的图像进行动画制作,如下图所示.我试过翻译动画,但我只能做平行的X轴或平行的Y轴.

但无法弄清楚如何对角地做到这一点.而且我也不确定是否可以通过翻译动画或其他类型的动画来完成.所以请建议我怎么做,或者如果有人能给我一个有用的链接,那么我也会被瞄准.

解决方法 一种方法是使用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();}

或者您可以使用自定义视图和自定义属性,但在这种情况下,您需要自己计算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 – 如何在对角线上翻译图像上的动画?全部内容,希望文章能够帮你解决android – 如何在对角线上翻译图像上的动画?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1137851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存