安卓动画兼容性

标签 android animation nineoldandroids

我目前正在开发一个与 API 14 及更高版本兼容的应用程序。它使用 ObjectAnimators 来制作大量动画。目标是使所有动画与 Android 2.2–2.2.3 Froyo(API 级别 8)及更高版本兼容。 我已经开始使用 nineoldandroids 来转换所有的 objectanimator 代码。然而,有一些功能我不确定可以使用什么作为替代,因为我不相信 nineoldandroid 支持它们(我可能是错的)。

以下是当前仅兼容 API 11 的函数列表。我们将不胜感激任何帮助。

设置翻译X 设置翻译Y 设置阿尔法 设置X 设置Y 设置滚动X 设置滚动Y

最佳答案

简而言之:是的,nineoldandroids 确实支持这些。

如果您查看 nineoldandroids 中 ObjectAnimator 的源代码,您会注意到它使用代理来为您要设置动画的属性设置动画。

    PROXY_PROPERTIES.put("alpha", PreHoneycombCompat.ALPHA);
    PROXY_PROPERTIES.put("pivotX", PreHoneycombCompat.PIVOT_X);
    PROXY_PROPERTIES.put("pivotY", PreHoneycombCompat.PIVOT_Y);
    PROXY_PROPERTIES.put("translationX", PreHoneycombCompat.TRANSLATION_X);
    PROXY_PROPERTIES.put("translationY", PreHoneycombCompat.TRANSLATION_Y);
    PROXY_PROPERTIES.put("rotation", PreHoneycombCompat.ROTATION);
    PROXY_PROPERTIES.put("rotationX", PreHoneycombCompat.ROTATION_X);
    PROXY_PROPERTIES.put("rotationY", PreHoneycombCompat.ROTATION_Y);
    PROXY_PROPERTIES.put("scaleX", PreHoneycombCompat.SCALE_X);
    PROXY_PROPERTIES.put("scaleY", PreHoneycombCompat.SCALE_Y);
    PROXY_PROPERTIES.put("scrollX", PreHoneycombCompat.SCROLL_X);
    PROXY_PROPERTIES.put("scrollY", PreHoneycombCompat.SCROLL_Y);
    PROXY_PROPERTIES.put("x", PreHoneycombCompat.X);
    PROXY_PROPERTIES.put("y", PreHoneycombCompat.Y);

像往常一样使用 ObjectAnimator(只要确保它是 com.nineoldandroids.animation!

ObjectAnimator anim = ObjectAnimator.ofFloat(yourView, "translationX", 0f, 1f);
anim.setDuration(1000);
anim.start();

编辑:这是一个示例,说明如何在 onTouchListener 中为 View 设置动画。请注意,返回 false 表示监听器尚未使用该事件。

view.setOnTouchListener(new OnTouchListener() {
      @Override
      public boolean onTouch(View view, MotionEvent event) {
        ObjectAnimator anim = ObjectAnimator.ofFloat(view, "translationX", 0f, 1f);
        anim.setDuration(1000);
        anim.start();
        return false;
      }
    });

关于安卓动画兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470300/

相关文章:

附加 onClickListener 时,android ListView 触摸动画消失了

android - NoClassDefoundError nineoldAndroid

Android Studio 构建失败 - 任务 ':app:dexDebug' 执行失败

android - 具有多个 View 同步问题的滑动动画

java - if语句比较java android中的字符串

android - addTextChangedListener 抛出 StackOverflow 错误

c++ - 过剩的简单二维动画

c# 动画对齐 - 可能吗?

Android部署发布问题

android - react native | @react-native-community_picker 在 Android 上未解析