Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何在对角线上翻译图像上的动画?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想对角线下的图像进行动画制作,如下图所示.我试过翻译动画,但我只能做平行的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();
}

或者您可以使用自定义视图和自定义属性,但@L_675_7@种情况下,您需要自己计算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 – 如何在对角线上翻译图像上的动画?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。