Метод setX() с типом int не найден в целевом классе android.view.View.
Я создаю анимацию для моего Android-приложения с помощью Android Property Animation. Я создаю файл XML в res/animator/ directory
,
<?xml version="1.0" encoding="utf-8"?>
<set android:ordering="sequentially" xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="x"
android:duration="500"
android:valueFrom="0"
android:valueTo="400"
android:valueType="intType"/>
</set>
Я надуваю ресурсы XML в вашем коде к объекту AnimatorSet, используя AnimatorInflater
,
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(PropertyAnimationActivity.this,
R.animator.animation_load_from_xml_example);
set.setTarget(animatorSetView);
set.start();
Я получаю ошибку
PropertyValuesHolder: метод setX() с типом int не найден в целевом классе android.view.View.
Любая идея, как исправить ошибку.
2 ответа
Решение
Вы должны изменить свой valueType на android:valueType="floatType"
так как setX() принимает значение с плавающей запятой ( ref).
Так должно быть android:propertyName="translationX"
свойство, потому что вы используете и valueFrom, и valueTo, что означает перемещение представления с x1 на x2, я полагаю. Если вы хотите использовать свойство x, вам следует использовать только свойство valueTo.