百分比库中的Android动画

时间:2015-12-11 10:28:30

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

我一直在研究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"

现在,我想创建一个AnimatorSet对象,可以执行多个操作,焦点位于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>

提前致谢

1 个答案:

答案 0 :(得分:4)

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

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