2016-03-22 6 views
0

私はこのXML表すプログラムObjectAnimatorを作成したい - 私は色の変化のためにObjectAnimatorを作成することができると同様の方法でvalueType-pathTypeでObjectAnimatorをプログラムで作成するにはどうすればよいですか?

<objectAnimator 
     android:duration="@integer/eye_anim_duration" 
     android:interpolator="@android:interpolator/anticipate_overshoot" 
     android:propertyName="pathData" 
     android:repeatCount="0" 
     android:repeatMode="restart" 
     android:valueFrom="@string/big" 
     android:valueTo="@string/small" 
     android:valueType="pathType" 
     /> 

を -

ValueAnimator animator = ObjectAnimator.ofInt(vector, "fillColor", getResources().getColor(R.color.light_green), getResources().getColor(R.color.red)); 
     animator.setDuration(3000); 

答えて

0

PathAnimatorInflaterクラスの使用とにsetupAnimatorForPath書き換え文字列を受け入れる代わりにTypedArrayが可能です。

private ObjectAnimator getAnimator(AnimatedVectorDrawable vector, int in, int out, int delay) { 
    ObjectAnimator animator = new ObjectAnimator(); 
    animator.setTarget(vector); 
    animator.setPropertyName("pathData"); 
    TypeEvaluator evaluator = PathAnimatorInflater.setupAnimatorForPath(animator, getResources().getString(in), getResources().getString(out)); 
    if (evaluator == null) { 
     return null; 
    } 
    animator.setEvaluator(evaluator); 
    animator.setRepeatMode(ValueAnimator.REVERSE); 
    animator.setDuration(3000); 
    animator.setStartDelay(delay); 
    return animator; 
} 

AnimatedVectorDrawableでこれを使用するのではなく、それはまた、ベクトルのクラスでいくつかの変更を必要とする - ここでは、これを使用する方法があります。

関連する問題