Android-анимации в процентах библиотеки
Я исследовал тему анимации на 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 ответ
Новая версия (>=1.3.0) моей библиотеки https://github.com/blipinsk/ViewPropertyObjectAnimator предоставляет возможность анимировать percent
параметры из Percent Support Library
, Получение ObjectAnimator
(который вы можете использовать внутри AnimatorSet
) так же просто, как использовать ViewPropertyAnimator
,
ObjectAnimator logoMarginAnimator =
ViewPropertyObjectAnimator.animate(logoImageView).topMarginPercent(0.1f).get();
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(logoMarginAnimator);
animatorSet.start();