【问题标题】:Android Animations on Percent Library百分比库上的 Android 动画
【发布时间】:2015-12-11 10:28:29
【问题描述】:

我一直在研究 Android 上的动画主题,但在针对使用 Percent 库的项目实施这些发现时遇到了障碍。

特别是,我的布局 xml 中有以下元素:

 <ImageView
        android:id="@+id/aImage"
        android:src="@drawable/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_marginTopPercent="35%"
        android:layout_centerHorizontal="true"
        android:visibility="invisible"/>

将以下属性分配给根PercentRelativeLayout 元素:

xmlns:app="http://schemas.android.com/apk/res-auto"

现在,我想创建一个AnimatorSetobject,它可以执行多个操作,重点是app:layout_marginTopPercent="35%" 属性。

我尝试创建一个 ObjectAnimator 并将其添加到 AnimatorSet 中,但这没有任何效果:

ObjectAnimator anim1 = ObjectAnimator.ofFloat(logoImageView, "layout_marginTopPercent", 0.35f, 0.1f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playSequentially(anim1);
animatorSet.start(); 

谁能解释我哪里出错了。有趣的是,我能够创建一个动画 .xml 文件并使用 translate 元素来执行成功的动画,但我需要在代码中执行此操作。下面是一个成功的 .XML 动画示例:

<set>
        <translate
         android:fromYDelta="0%p"
         android:toYDelta="-25%p"
         android:duration="1000" />
</set>

提前致谢

【问题讨论】:

  • 你能在 logcat 上看到任何与"layout_marginTopPercent" 相关的内容吗?
  • 很遗憾没有。 logcat 没有显示任何相关的@pskink
  • 没有实现的方法?啊哈,设置anim1的持续时间
  • 必须有一个默认的动画持续时间,因为如果我将 layout_marginTopPercent 更改为“Y”,动画就会起作用。无论哪种方式,设置持续时间都没有区别。
  • 没有关于不存在方法setLayout_marginTopPercent 或什么的 logcat 警告?

标签: java android xml android-animation android-percent-library


【解决方案1】:

我的库 ViewPropertyObjectAnimator 的新版本 (>=1.3.0) 提供了一种从 Percent Support Librarypercent 参数设置动画的方法。获取ObjectAnimator(可以在AnimatorSet 中使用)就像使用ViewPropertyAnimator 一样简单。

ObjectAnimator logoMarginAnimator = 
            ViewPropertyObjectAnimator.animate(logoImageView).topMarginPercent(0.1f).get();
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(logoMarginAnimator);
animatorSet.start(); 

【讨论】:

  • 现在刚试用这个库,但看起来令人印象深刻
  • 如果您发现任何问题(尤其是动画percent 参数),请告诉我。
  • 这是第三方选择,但强烈推荐。谢谢
  • 太棒了!很高兴你喜欢:)
猜你喜欢
  • 1970-01-01
  • 2012-06-16
  • 2012-08-01
  • 1970-01-01
  • 2013-05-22
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多