Метод 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.

Другие вопросы по тегам