在目标类类android.view.View

时间:2018-01-15 09:41:22

标签: android android-animation objectanimator

我正在使用android Property Animation为我的Android应用创建动画。 我在res/animator/ directory

中创建了一个XML文件
<?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>

我使用AnimatorInflater将代码中的XML资源扩展为AnimatorSet对象。

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(PropertyAnimationActivity.this,
            R.animator.animation_load_from_xml_example);
            set.setTarget(animatorSetView);
            set.start();

我收到错误

  

PropertyValuesHolder:在目标上找不到类型为int的方法setX()   class class android.view.View

知道如何解决错误。

2 个答案:

答案 0 :(得分:2)

您应该将valueType更改为android:valueType="floatType",因为setX()采用浮点值(ref)。

答案 1 :(得分:1)

它应该是android:propertyName="translationX"属性,因为你同时使用valueFrom和valueTo,这意味着将视图从x1移动到x2。如果你想使用属性x那么你应该只使用valueTo属性。