2017-01-09 2 views
0

Когда я сменил строку кода android:propertyName="scaleX" на android:propertyName="alpha", анимация не работает!Android objectAnimator set propertyValuesHolder

Код

AnimatedVectorDrawableCompat mAnimatedVectorDrawable = AnimatedVectorDrawableCompat.create(
         getApplication(), R.drawable.v_frame_animation 
       ); 
       image.setImageDrawable(mAnimatedVectorDrawable); 
       if (mAnimatedVectorDrawable != null) { 
        mAnimatedVectorDrawable.start(); 
       } 

аниматор/v_frame_animation.xml

<?xml version="1.0" encoding="utf-8"?> 
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:drawable="@drawable/gears_copy"> 
     <target 
      android:name="vaaa" 
      android:animation="@animator/heart_frame_animator" /> 
    </animated-vector> 

аниматор/heart_frame_animator.xml

<?xml version="1.0" encoding="utf-8"?> 
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" 
      android:duration="5000" 
      android:repeatCount="infinite" 
      android:valueType="floatType"> 
      <propertyValuesHolder 
       android:propertyName="scaleX" 
       android:valueType="floatType"> 
       <keyframe 
        android:fraction="0" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:value="0" /> 
       <keyframe 
        android:fraction=".5" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:value="1" /> 
       <keyframe 
        android:fraction="1" 
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:value="0" /> 
      </propertyValuesHolder> 
     </objectAnimator> 
+0

Вы можете попробовать имя свойства "fillAlpha"? – GaborNovak

ответ

0

Если вы хотите добавить выцветанию анимацию на андроид, вы можете использовать этот xml-код.

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<alpha 
android:fromAlpha="0" 
android:toAlpha="1.0" 
android:duration= "2000" 
/> 
</set> 

Этот код делает значение альфа-значения от 0 до 1,0 в 2000 мс.

Не забудьте добавить это в Рез/папку Anim и добавить в свой Activity.java

try { 
     Animation myFadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.splash); 
     splash.startAnimation(myFadeInAnimation);//splash is an ImageView 
    }catch (NullPointerException e){ 
     e.printStackTrace(); 
    } 

Это должно решить.

Счастливое кодирование.

Смежные вопросы